home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-189 < prev    next >
Text File  |  1988-12-01  |  174KB  |  5,627 lines

  1.  
  2.                                                           IEN 189
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                      ISSUES IN INTERNETTING
  22.  
  23.                         PART 4:  ROUTING
  24.  
  25.  
  26.                           Eric C. Rosen
  27.  
  28.  
  29.                   Bolt Beranek and Newman Inc.
  30.  
  31.  
  32.                             June 1981
  33.  
  34. IEN 189                              Bolt Beranek and Newman Inc.
  35.                                                     Eric C. Rosen
  36.  
  37.  
  38.                      ISSUES IN INTERNETTING
  39.  
  40.                         PART 4:  ROUTING
  41.  
  42.  
  43. 4.  Routing
  44.  
  45.  
  46.      This is the fourth in a series of papers  that  discuss  the
  47.  
  48. issues  involved  in designing an internet.  Familiarity with the
  49.  
  50. previous papers (IENs 184, 187, and 188) is presupposed.
  51.  
  52.  
  53.      The topic of the present paper is routing.  We will  discuss
  54.  
  55. the  issues  involved  in  choosing  a  routing algorithm for the
  56.  
  57. internet, and  we  will  propose  a  particular  algorithm.   The
  58.  
  59. algorithm  we  propose  will  be  based  on the routing algorithm
  60.  
  61. currently operating in the ARPANET, called "SPF  routing."   This
  62.  
  63. algorithm  is  described in [1] and [2], which interested readers
  64.  
  65. will certainly want to look at.  Although we  will  try  to  make
  66.  
  67. this paper relatively self-contained, we will of course focus our
  68.  
  69. discussion  on those aspects of the algorithm which might have to
  70.  
  71. be modified to work in the internet.
  72.  
  73.  
  74.      Any discussion of the proper routing algorithm to use  in  a
  75.  
  76. particular  Network  Structure must begin with a consideration of
  77.  
  78. just what characteristics we want the routing algorithm to  have.
  79.  
  80. That  is, we must decide in advance just what we want the routing
  81.  
  82. algorithm to do.  Everyone will agree that the routing  algorithm
  83.  
  84. ought  to be able to deliver data from an arbitrary source Switch
  85.  
  86. to an arbitrary  destination  Switch,  as  long  as  there  is  a
  87.  
  88.  
  89.                               - 1 -
  90.  
  91. IEN 189                              Bolt Beranek and Newman Inc.
  92.                                                     Eric C. Rosen
  93.  
  94.  
  95. physical  path  between them.  Or at least, the routing algorithm
  96.  
  97. should make the probability of being able to do this  arbitrarily
  98.  
  99. high.  However, this is a very minimal criterion (as indicated by
  100.  
  101. the  fact that everyone would agree to it).  There are many other
  102.  
  103. requirements we must place on the routing algorithm if we  intend
  104.  
  105. to  design  a  robust and high performance Network Structure.  We
  106.  
  107. will  present  some  requirements  and  some   possible   routing
  108.  
  109. algorithms  which fulfill the requirements to a greater or lesser
  110.  
  111. degree.  We hope that by the end of this paper, we will have made
  112.  
  113. a case that our proposed routing algorithm does a better  job  of
  114.  
  115. meeting more of the desired requirements than does any other that
  116.  
  117. we know of.
  118.  
  119.  
  120. 4.1  Flexibility and Topological Changes
  121.  
  122.  
  123.      One extremely important, though little noticed, feature that
  124.  
  125. we  should require of a routing algorithm is that it enable us to
  126.  
  127. make arbitrary changes in the topology of the Network  Structure,
  128.  
  129. without the need to make manual changes in the internal tables of
  130.  
  131. the  Switches.   This  is a capability that has always existed in
  132.  
  133. the ARPANET.   IMPs  can  be  added,  removed,  or  moved  around
  134.  
  135. arbitrarily,  and  the  routing algorithm automatically adapts to
  136.  
  137. the new topology without any  manual  intervention.   This  seems
  138.  
  139. simple  enough, but it does place some significant constraints on
  140.  
  141. the nature of the routing algorithm.  For example, it immediately
  142.  
  143. rules out fixed routing.  By "fixed routing,"  we  refer  to  any
  144.  
  145.  
  146.                               - 2 -
  147.  
  148. IEN 189                              Bolt Beranek and Newman Inc.
  149.                                                     Eric C. Rosen
  150.  
  151.  
  152. scheme  where  a  set  of  routes  to  each destination Switch is
  153.  
  154. "compiled into" each Switch.  In fixed routing schemes, there  is
  155.  
  156. generally  a  "primary  route",  to  be  used  when  the  Network
  157.  
  158. Structure is not  suffering  from  any  outages,  and  a  set  of
  159.  
  160. alternate or secondary routes to be used if some component of the
  161.  
  162. primary route should fail.  We know of one network which does use
  163.  
  164. this  sort  of fixed routing, and as a result, they are forced to
  165.  
  166. adhere to a very strict rule which allows them to add  or  remove
  167.  
  168. Switches  only  once  every  six months.  Certainly, we would not
  169.  
  170. want to build such a restriction into the internet.
  171.  
  172.  
  173.      Fixed routing also prohibits  certain  important  day-to-day
  174.  
  175. operational  procedures  that are often used in the ARPANET.  For
  176.  
  177. example, it is quite common, when an  IMP  is  brought  down  for
  178.  
  179. preventive  maintenance,  to "splice" that IMP out of the network
  180.  
  181. by wiring together two of its modems.  This causes two IMPs  that
  182.  
  183. ordinarily  have  a  common  neighbor  to  suddenly become direct
  184.  
  185. neighbors of  each  other.   (A  similar  function  can  also  be
  186.  
  187. performed  by  the  telephone  company,  in case the power to the
  188.  
  189. modems is shut off, or if the  site  cannot  be  reached.)   This
  190.  
  191. ability to preserve network bandwidth even when a site is down is
  192.  
  193. quite  important  to  robust network performance.  Yet it is very
  194.  
  195. difficult, if not impossible, to do this if  the  network  has  a
  196.  
  197. fixed routing algorithm.  It is not yet clear to what extent such
  198.  
  199. day-to-day  "firefighting"  techniques  will be applicable in the
  200.  
  201. internet, but it certainly  does  not  seem  wise  to  design  an
  202.  
  203.                               - 3 -
  204.  
  205. IEN 189                              Bolt Beranek and Newman Inc.
  206.                                                     Eric C. Rosen
  207.  
  208.  
  209. internet  routing  algorithm  which  would  be  too inflexible to
  210.  
  211. permit the use of such techniques.
  212.  
  213.  
  214.      Another very useful capability which is difficult to combine
  215.  
  216. with  fixed  routing  is  the  ability  to   create   arbitrarily
  217.  
  218. configured  test networks in the lab, and then to connect them to
  219.  
  220. the real network.  This is something that is done quite often  in
  221.  
  222. the  ARPANET,  usually  for  the  purposes  of  testing  out  new
  223.  
  224. software, and we will definitely  need  this  capability  in  the
  225.  
  226. internet in order to test out new gateway software (as well as to
  227.  
  228. test out patches and bug fixes to the old).
  229.  
  230.  
  231.      It  is also worth noting that implementing a scheme of fixed
  232.  
  233. routing with a primary route and alternates to be used in case of
  234.  
  235. outages is not nearly as trivial as it may seem.   Remember  that
  236.  
  237. it  is not enough for each individual Switch, when its Pathway to
  238.  
  239. a particular neighbor fails, to pick an alternate neighbor as its
  240.  
  241. next hop to some destination.  Rather, any  outage  requires  ALL
  242.  
  243. the  Switches to pick alternates in a COORDINATED MANNER, so that
  244.  
  245. the routing produced  by  the  use  of  the  alternate  paths  is
  246.  
  247. loop-free.  This is quite a difficult problem, and if there are a
  248.  
  249. large  number  of Switches and Pathways, any combination of which
  250.  
  251. could fail, this means that a  very  large  number  of  alternate
  252.  
  253. paths  must  be maintained, requiring a consequently large amount
  254.  
  255. of table space.
  256.  
  257.  
  258.  
  259.  
  260.                               - 4 -
  261.  
  262. IEN 189                              Bolt Beranek and Newman Inc.
  263.                                                     Eric C. Rosen
  264.  
  265.  
  266.      We will not be giving much serious consideration to the  use
  267.  
  268. of  fixed routing in the internet.  We mention it largely for the
  269.  
  270. sake of completeness, and because there is  a  natural  tendency,
  271.  
  272. which  we  wish  to oppose, to suppose that fixed routing must be
  273.  
  274. simpler, cheaper and more reliable than  dynamic  routing.   This
  275.  
  276. tendency  ignores the day-to-day operational problems involved in
  277.  
  278. the use of fixed routing, as  well  as  the  difficult  technical
  279.  
  280. problems involved the the creation of fixed routing tables.
  281.  
  282.  
  283.      Preserving  maximum  flexibility to make topological changes
  284.  
  285. requires the Switches to be able to determine, dynamically,  just
  286.  
  287. who  their  neighbors  are.   (Remember  that  two  Switches of a
  288.  
  289. Network Structure are neighbors if and only if they are connected
  290.  
  291. by a Pathway,  i.e.,  by  a  communications  path  containing  no
  292.  
  293. intermediate  Switch  of  the  same  Network  Structure.)  In the
  294.  
  295. ARPANET,  each  IMP  is  initialized  to  know  how  many   modem
  296.  
  297. interfaces  it  has,  and  does  not  determine that dynamically.
  298.  
  299. However, initialization only tells the IMP how many interfaces it
  300.  
  301. has; it does not tell the IMP  who  its  neighbor  is  over  each
  302.  
  303. interface.    The   IMPs   determine   who  their  neighbors  are
  304.  
  305. dynamically, via the line up/down protocol, and  a  line  between
  306.  
  307. two  IMPs  cannot come up unless and until each of the IMPs knows
  308.  
  309. the identity of the other.
  310.  
  311.  
  312.      The situation in  the  present  Catenet  gateways  is  quite
  313.  
  314. different.   Each  gateway  has  a  table  of potential neighbors
  315.  
  316.  
  317.                               - 5 -
  318.  
  319. IEN 189                              Bolt Beranek and Newman Inc.
  320.                                                     Eric C. Rosen
  321.  
  322.  
  323. "assembled  in."   When  a  gateway  comes  up,  it  attempts  to
  324.  
  325. communicate  (via  a special gateway neighbor protocol) with each
  326.  
  327. of  the  gateways  in  its  pre-assembled  neighbor  table.   Two
  328.  
  329. gateways  are  considered neighbors only if this communication is
  330.  
  331. successful.  Gateways will also consider themselves neighbors  of
  332.  
  333. other  gateways  that  communicate  with  them  according  to the
  334.  
  335. gateway neighbor protocol, even if the other gateway  is  not  in
  336.  
  337. the  pre-assembled neighbor table.  This means that two gateways,
  338.  
  339. G1 and G2, cannot become neighbors unless either G1  is  in  G2's
  340.  
  341. pre-assembled  neighbor  table,  or  G2  is in G1's pre-assembled
  342.  
  343. neighbor table.
  344.  
  345.  
  346.      Of course, in a real operational  environment,  it  is  very
  347.  
  348. important  to  ensure  that  site-dependent  information  is  not
  349.  
  350. assembled or compiled in.  Rather, it must be separately loadable
  351.  
  352. (over the network itself)  by  the  Network  Control  Center,  or
  353.  
  354. whatever  equivalent  organization  we  create  for operating the
  355.  
  356. internet.   In  fact,  site-dependent  information  ought  to  be
  357.  
  358. preserved  over  reload of site-independent information, and vice
  359.  
  360. versa.  (This discipline is followed in the ARPANET.)   Designing
  361.  
  362. the  gateways  according to this discipline is a very non-trivial
  363.  
  364. task, which must be planned for by the gateway designers  at  the
  365.  
  366. earliest  stage  of gateway design.  Otherwise, we will build for
  367.  
  368. ourselves  a  very  difficult  set  of  unnecessary   operational
  369.  
  370. problems.
  371.  
  372.  
  373.  
  374.                               - 6 -
  375.  
  376. IEN 189                              Bolt Beranek and Newman Inc.
  377.                                                     Eric C. Rosen
  378.  
  379.  
  380.      However, it is not a very good idea to have a fixed table of
  381.  
  382. neighbors  in  each  Switch,  even  if  this  table is separately
  383.  
  384. loadable.  This just does not give us the flexibility  we  desire
  385.  
  386. for  making  arbitrary topological changes.  If there has not yet
  387.  
  388. been any difficulty with the Catenet's current  scheme,  that  is
  389.  
  390. probably  because  of  the small number of gateways and component
  391.  
  392. networks in the current internet environment.  As the  number  of
  393.  
  394. gateways  increases,  the need to have them dynamically determine
  395.  
  396. who their neighbors are becomes increasingly more important.
  397.  
  398.  
  399.      However, having gateways discover  (dynamically)  who  their
  400.  
  401. neighbors  are  is  a  more  difficult  problem  than having IMPs
  402.  
  403. discover who their neighbors are.  The  interfaces  on  the  IMPs
  404.  
  405. function  as  point-to-point  lines,  so there can be at most one
  406.  
  407. other IMP on the other end of a line, and any data sent out  that
  408.  
  409. line can be expected to reach just that IMP.  Therefore it is not
  410.  
  411. very  hard  for an IMP to discover which IMP is at the other end.
  412.  
  413. An IMP simply sends its identity (a unique number which it  reads
  414.  
  415. from  its  hardware  configuration  cards)  down  the  line  in a
  416.  
  417. message, and if the line is operational, the message  must  reach
  418.  
  419. the  IMP  on  the  other  end.   For  two gateways connected by a
  420.  
  421. packet-switching  network,  the  problem  is  more   complicated,
  422.  
  423. because, unlike telephone circuits, a packet-switching network is
  424.  
  425. not   a   point-to-point   line  with  a  relatively  transparent
  426.  
  427. interface.  In order  for  one  gateway  to  identify  itself  to
  428.  
  429. another,  it  must be able to address the other, using the Access
  430.  
  431.                               - 7 -
  432.  
  433. IEN 189                              Bolt Beranek and Newman Inc.
  434.                                                     Eric C. Rosen
  435.  
  436.  
  437. Protocol of the packet-switching  network  which  serves  as  the
  438.  
  439. Pathway  between  them.  This seems to mean that for a gateway to
  440.  
  441. be able to send its identity to a neighbor, it must already  know
  442.  
  443. the neighbor's name.  This seems like Catch-22 -- there is no way
  444.  
  445. to  determine  dynamically  who  your neighbor is, unless you can
  446.  
  447. address him, but there is  no  way  to  address  him  unless  you
  448.  
  449. already know who he is.
  450.  
  451.  
  452.      This   problem  can  be  made  more  tractable  through  the
  453.  
  454. cooperation  of  the  packet-switching  networks  underlying  the
  455.  
  456. Pathways  which connect the gateways.  A packet-switching network
  457.  
  458. could recognize that certain of its own components  (which  might
  459.  
  460. be either Switches or Hosts within its own Network Structure) are
  461.  
  462. also  Switches  within  a  Network  Structure  which is one level
  463.  
  464. higher in a hierarchy.  For example, in the ARPANET, there  might
  465.  
  466. be   some  special  protocol  (call  it  the  "gateway  discovery
  467.  
  468. protocol"), carried out on the host-IMP level, by  which  certain
  469.  
  470. hosts  identify  themselves  as  internet  gateways.   Whenever a
  471.  
  472. gateway connected to a particular IMP comes up or goes down, this
  473.  
  474. information could be broadcast to all  other  IMPs.   Whenever  a
  475.  
  476. gateway  comes up, the IMP it is connected to could tell it which
  477.  
  478. of the other hosts are internet gateways.  In this way, the  IMPs
  479.  
  480. could  keep  the gateways informed as to which other gateways are
  481.  
  482. up  or  down  at  any  particular  time.   This  sort  of  scheme
  483.  
  484. eliminates the need for the gateways to know in advance who their
  485.  
  486. neighbors  might  be,  and  moves  the responsibility for keeping
  487.  
  488.                               - 8 -
  489.  
  490. IEN 189                              Bolt Beranek and Newman Inc.
  491.                                                     Eric C. Rosen
  492.  
  493.  
  494. track  of  the  gateways  and  their  up/down   status   to   the
  495.  
  496. packet-switching  network  itself,  which  is  better equipped to
  497.  
  498. carry out this responsibility.
  499.  
  500.  
  501.      Such a scheme would not be very difficult, in principle,  to
  502.  
  503. build  into  the  ARPANET.   Information  about gateways could be
  504.  
  505. subsumed into the routing information.  That is, an IMP connected
  506.  
  507. to a gateway could represent the gateway  as  a  stub  node,  and
  508.  
  509. report  on  it  as  such  in  its  ordinary routing updates.  (Of
  510.  
  511. course, this is only  feasible  if  the  number  of  gateways  is
  512.  
  513. relatively  small when compared to the number of IMPs.  Otherwise
  514.  
  515. the additional overhead this would add to the ARPANET's  internal
  516.  
  517. routing  algorithm would make the scheme infeasible.  However, it
  518.  
  519. does seem likely that the number of gateways on the ARPANET  will
  520.  
  521. always  be  much  smaller  than the number of IMPs.)  This scheme
  522.  
  523. would automatically cause the information about the  gateways  to
  524.  
  525. be  broadcast  to  all IMPs as part of the routing updates.  (See
  526.  
  527. section 4.5 for a description of the routing  update  procedure.)
  528.  
  529. Each  IMP  which is connected directly to a gateway could forward
  530.  
  531. information about other  gateways  to  its  own  gateway  as  the
  532.  
  533. information  is received.  The most difficult problem might be to
  534.  
  535. get enough "security" in the gateway-to-IMP protocol so that only
  536.  
  537. real gateways could declare themselves to be gateways.  (Some  of
  538.  
  539. the  issues  involved  in  preventing  a  host from "fooling" the
  540.  
  541. network into thinking it is a different host than  it  really  is
  542.  
  543. are  discussed  in  IEN 183.  See the discussion of LAD messages.
  544.  
  545.                               - 9 -
  546.  
  547. IEN 189                              Bolt Beranek and Newman Inc.
  548.                                                     Eric C. Rosen
  549.  
  550.  
  551. However, that note does not consider the real issue  of  security
  552.  
  553. that arises here.)
  554.  
  555.  
  556.      This  scheme  for having gateways dynamically discover their
  557.  
  558. neighbors through the cooperation of the networks underlying  the
  559.  
  560. internal  Pathways  of  the internet is an important step towards
  561.  
  562. the solution of the "flying gateway" problem.  The flying gateway
  563.  
  564. problem is the following.  Suppose that N is  a  packet-switching
  565.  
  566. network  which  is one of the component networks of the internet.
  567.  
  568. Now suppose that  due  to  some  sort  of  emergency  or  natural
  569.  
  570. disaster,  N  becomes partitioned into two "pieces", call them N1
  571.  
  572. and N2, and that  this  partition  is  expected  to  last  for  a
  573.  
  574. significant  amount  of time.  If H1 is a Host in N1, and H2 is a
  575.  
  576. Host in N2, then H1 and H2 will no longer be able to  communicate
  577.  
  578. through the network N.  (Of course, H1 and H2 might still be able
  579.  
  580. to  communicate  though  the  internet,  if  there is an internet
  581.  
  582. gateway on N1 and an internet gateway on N2, and a route  between
  583.  
  584. these two gateways other than the "direct" route via N.  In fact,
  585.  
  586. the  addressing  scheme  proposed  in  IEN 188 will automatically
  587.  
  588. cause traffic from H1 to H2 to be delivered over  this  alternate
  589.  
  590. route,  AS LONG AS H1 SUBMITS THIS TRAFFIC TO ONE OF THE INTERNET
  591.  
  592. GATEWAYS CONNECTED TO N1, RATHER THAN TRYING TO SEND IT  DIRECTLY
  593.  
  594. TO  H2 OVER THE NETWORK N.)  However, in some cases, there may be
  595.  
  596. no such alternate route, or else  its  characteristics  might  be
  597.  
  598. unsatisfactory.   In  addition,  it  must  be remembered that the
  599.  
  600. partition of network N might actually result in the partition  of
  601.  
  602.                              - 10 -
  603.  
  604. IEN 189                              Bolt Beranek and Newman Inc.
  605.                                                     Eric C. Rosen
  606.  
  607.  
  608. the internet itself, so that some pairs of Hosts which ordinarily
  609.  
  610. communicate over the internet can no longer reach each other.  In
  611.  
  612. such  cases, it might be desirable, at the level of the internet,
  613.  
  614. to treat N1 and N2 as separate component networks, and  to  place
  615.  
  616. an  internet  gateway  between  them so that internet traffic can
  617.  
  618. flow from N1 to N2.   One  possible  scenario  is  for  this  new
  619.  
  620. gateway  to  be  an airborne packet radio, hence the name "flying
  621.  
  622. gateway."
  623.  
  624.  
  625.      If a flying gateway can be connected to both N1 and N2,  and
  626.  
  627. if  the network N has a gateway discovery protocol of the sort we
  628.  
  629. have been advocating, then the flying gateway need merely come up
  630.  
  631. on N1 and N2, declaring itself to be an  internet  gateway.   The
  632.  
  633. gateway  discovery  protocol  run in the network pieces N1 and N2
  634.  
  635. will cause the other internet gateways in N1  and  N2  to  become
  636.  
  637. aware  that  they  have a new neighbor, the flying gateway.  Once
  638.  
  639. the gateways in N1 and N2 become aware of their new neighbor,  it
  640.  
  641. automatically begins to participate in the routing algorithm (see
  642.  
  643. section  4.5  for  details of the routing updating algorithm that
  644.  
  645. brings this about), and routing automatically begins to  use  the
  646.  
  647. flying  gateway  for store-and-forwarding internet traffic.  Thus
  648.  
  649. any partition of the internet is automatically brought to an end.
  650.  
  651.  
  652.      In addition to using the flying  gateway  as  a  transit  or
  653.  
  654. intermediate  gateway  for  internet  traffic,  it  may  also  be
  655.  
  656. desirable to use it as a  destination  Switch  in  the  internet.
  657.  
  658.  
  659.                              - 11 -
  660.  
  661. IEN 189                              Bolt Beranek and Newman Inc.
  662.                                                     Eric C. Rosen
  663.  
  664.  
  665. That is, it may be desirable to allow the other internet Switches
  666.  
  667. (gateways) to use the flying gateway as the address to which they
  668.  
  669. route  traffic  for  Hosts  in  N1  or N2.  This is slightly more
  670.  
  671. complicated  than  simply  using  the  flying   gateway   as   an
  672.  
  673. intermediate Switch.  The logical-to-physical address translation
  674.  
  675. tables  in  the  gateways  (we are assuming the addressing scheme
  676.  
  677. proposed in IEN 188) will not, in general, map any  Host  logical
  678.  
  679. addresses into the address of the flying gateway, which after all
  680.  
  681. is  not  ordinarily  on  the  internet.   However, as long as the
  682.  
  683. flying gateway indicates that it is a special,  flying,  gateway,
  684.  
  685. and  as  long  as this information is made known to all the other
  686.  
  687. gateways, this problem is simple enough to  solve.   If  F  is  a
  688.  
  689. flying  gateway,  and  G  is an ordinary gateway, and F and G are
  690.  
  691. neighbors, then any logical address which maps to  G  but  cannot
  692.  
  693. currently  be  reached  through  any  ordinary  gateway should be
  694.  
  695. mapped to F.  (As we shall see, the routing algorithm we  propose
  696.  
  697. makes  available to each Switch all information about which pairs
  698.  
  699. of Switches are neighbors.)  Attempting to reach the  destination
  700.  
  701. Host  via the flying gateway F will either be successful, or else
  702.  
  703. should result in  the  return  of  a  DNA  message,  which  would
  704.  
  705. indicate  that the Host cannot be reached from the flying gateway
  706.  
  707. either.  The only remaining problem is  for  the  flying  gateway
  708.  
  709. itself  to  determine  which of the two pieces of the partitioned
  710.  
  711. network  contain  some  particular  Host  for  which  it  is  the
  712.  
  713. destination  Switch.   Any  data  for  destination  Host  H which
  714.  
  715.  
  716.                              - 12 -
  717.  
  718. IEN 189                              Bolt Beranek and Newman Inc.
  719.                                                     Eric C. Rosen
  720.  
  721.  
  722. arrives at Switch F can potentially be sent to  either  piece  of
  723.  
  724. the  partitioned network.  The situation is no different than the
  725.  
  726. problem of how an ordinary gateway, which has two Pathways  to  a
  727.  
  728. particular  Host,  one of which is non-operational, decides which
  729.  
  730. one to use.  Note that the individual Hosts do  not  need  to  be
  731.  
  732. aware  at  all  of the existence of the flying gateway, since the
  733.  
  734. logical addressing scheme automatically finds the right  physical
  735.  
  736. address.   Of  course, for this mechanism to be at all effective,
  737.  
  738. there  must  be  a  robust  and  efficient  Host-Switch   up/down
  739.  
  740. protocol,  which  works  through  the  cooperation of the network
  741.  
  742. underlying the Pathway between Host and Switch.
  743.  
  744.  
  745.      Unfortunately, not every component network  of  an  internet
  746.  
  747. can  be  expected  to  cooperate this way in a "gateway discovery
  748.  
  749. protocol."  In fact, if two  Switches  of  the  internet  Network
  750.  
  751. Structure are connected by a Pathway which is itself an internet,
  752.  
  753. rather  than a single packet-switching network, then this sort of
  754.  
  755. cooperation  in  the  "gateway  discovery  protocol"   might   be
  756.  
  757. extremely  difficult  if  not  impossible.  It seems though to be
  758.  
  759. quite important to get the communications  media  which  underlie
  760.  
  761. the  Pathways  to  participate  in  such  a  protocol,  for  that
  762.  
  763. significantly increases both the reliability and the  flexibility
  764.  
  765. of  the  internetting  scheme.   It  does  not  seem possible for
  766.  
  767. Switches  which  are  connected  by  uncooperative  Pathways   to
  768.  
  769. determine dynamically who their neighbors are.  In such cases, we
  770.  
  771. may  then have to live with hand-built neighbor tables (as in the
  772.  
  773.                              - 13 -
  774.  
  775. IEN 189                              Bolt Beranek and Newman Inc.
  776.                                                     Eric C. Rosen
  777.  
  778.  
  779. present Catenet), and a protocol which the  Switches  attempt  to
  780.  
  781. carry  out  with their neighbors to see which potential neighbors
  782.  
  783. are really reachable.  Networks which do not  provide  a  gateway
  784.  
  785. discovery  protocol,  however,  cannot be patched together with a
  786.  
  787. flying gateway if they should partition.
  788.  
  789.  
  790.      Even  for  Switches  which  are  connected  by   cooperative
  791.  
  792. Pathways,  it  is desirable to have a protocol which the Switches
  793.  
  794. attempt to run with each one of their neighbors, to  see  whether
  795.  
  796. they  really  can send and receive data to or from each neighbor.
  797.  
  798. Suppose, for example,  that  two  Switches  are  connected  by  a
  799.  
  800. Pathway  which  is  a very congested network.  In such a network,
  801.  
  802. the messages which are used to tell  the  internet  Switches  who
  803.  
  804. their  "neighbors"  are  might  well  be flowing, even though the
  805.  
  806. congestion prevents ordinary (user) data from flowing.   This  is
  807.  
  808. not  at all unlikely, if the gateway discovery protocol makes use
  809.  
  810. of the network's routing updates, which would probably be of much
  811.  
  812. higher priority than ordinary data packets.  Since we don't  want
  813.  
  814. to  use  this  Pathway  for  internet traffic unless it can carry
  815.  
  816. data, some independent means of determining this may  be  needed.
  817.  
  818. The  situation  is  somewhat more complicated if the Pathway is a
  819.  
  820. packet-switching network with different "acceptance classes",  so
  821.  
  822. that  only  certain  classes of traffic are accepted at any given
  823.  
  824. time, depending perhaps on the internal loading conditions of the
  825.  
  826. network.  If a Pathway is only accepting a certain  sub-class  of
  827.  
  828. data  traffic,  any internet Switches which are connected to that
  829.  
  830.                              - 14 -
  831.  
  832. IEN 189                              Bolt Beranek and Newman Inc.
  833.                                                     Eric C. Rosen
  834.  
  835.  
  836. Pathway must  be  able  to  determine  which  classes  are  being
  837.  
  838. accepted  (presumably  the  network  underlying  the Pathway will
  839.  
  840. inform the Switches as to  any  access  restrictions),  and  this
  841.  
  842. information  will  have  to be fed back into the internet routing
  843.  
  844. algorithm, so that traffic which cannot be placed  on  a  certain
  845.  
  846. Pathway is not routed there nonetheless.
  847.  
  848.  
  849.      The   reader   will   doubtless   have  noticed  that  these
  850.  
  851. considerations, of determining who one's neighbors  are,  and  of
  852.  
  853. determining  whether the Pathway to each neighbor is operational,
  854.  
  855. are quite similar to the considerations adduced in IEN 187 in the
  856.  
  857. discussion of Pathway up/down protocols to be run between a  Host
  858.  
  859. and  a  Switch.   What  we  have  been  discussing  is  really an
  860.  
  861. inter-Switch Pathway up/down  protocol.   The  gateway  discovery
  862.  
  863. protocol  corresponds  to  what  we  called  a "low-level up/down
  864.  
  865. protocol", and the type of protocol  discussed  in  the  previous
  866.  
  867. paragraph corresponds to what we called the "higher-level up/down
  868.  
  869. protocol."
  870.  
  871.  
  872. 4.2  Why We Cannot Require Optimality
  873.  
  874.  
  875.      What else would we like the routing algorithm to do, besides
  876.  
  877. giving  us  the  maximum flexibility to make topological changes?
  878.  
  879. Generally, we tend to feel that a really good  routing  algorithm
  880.  
  881. should  optimize  something,  delay  or  throughput, for example.
  882.  
  883. However, true optimality is really not possible.  If we are given
  884.  
  885. a complete description of a network,  including  its  topological
  886.  
  887.                              - 15 -
  888.  
  889. IEN 189                              Bolt Beranek and Newman Inc.
  890.                                                     Eric C. Rosen
  891.  
  892.  
  893. structure,  and  the  capacities  and speeds of all its lines and
  894.  
  895. Switches, and if we are also given the traffic requirement (as  a
  896.  
  897. Switch-Switch traffic matrix which tells us how much traffic each
  898.  
  899. Switch  will  originate which is destined for each other Switch),
  900.  
  901. and if the packet inter-arrival rates and sizes vary according to
  902.  
  903. certain specific probabilistic distributions, and if the  traffic
  904.  
  905. is in a steady-state condition, it is just a mathematical problem
  906.  
  907. to  devise  a  set  of routing tables for the Switches which will
  908.  
  909. minimize the network average delay.  Applied mathematicians  have
  910.  
  911. devoted  a great deal of effort to devising algorithms to produce
  912.  
  913. this optimal solution.  There are a large number of problems with
  914.  
  915. attempting to use this sort of  "optimal  routing  algorithm"  as
  916.  
  917. the operational routing algorithm of a network:
  918.  
  919.  
  920.      1) Packet arrival rates and sizes do  not  necessarily  vary
  921.  
  922.         according  to  the  probabilistic distributions which are
  923.  
  924.         assumed by optimal routing algorithms.
  925.  
  926.  
  927.      2) Optimal  routing   algorithms   are   ALWAYS   based   on
  928.  
  929.         mathematical models of the relationship between delay and
  930.  
  931.         throughput which are not supported by empirical data.
  932.  
  933.  
  934.      3) Actual traffic requirements are quite variable,  and  may
  935.  
  936.         not  really  approach  a  steady-state  for a long enough
  937.  
  938.         period of time  to  enable  true  optimization.   Traffic
  939.  
  940.         requirements are also generally unknown, and difficult to
  941.  
  942.         predict or measure.
  943.  
  944.                              - 16 -
  945.  
  946. IEN 189                              Bolt Beranek and Newman Inc.
  947.                                                     Eric C. Rosen
  948.  
  949.  
  950.      4) Most algorithms to compute the optimal  routes  are  real
  951.  
  952.         number   crunchers,  and  require  large  floating  point
  953.  
  954.         computers.  These algorithms would have to be  run  in  a
  955.  
  956.         central   location,  producing  routing  tables  for  all
  957.  
  958.         Switches, and then distributing them somehow (centralized
  959.  
  960.         routing), with  consequent  problems  of  robustness  and
  961.  
  962.         overhead.
  963.  
  964.  
  965.      5) There  are  distributed  optimizing   algorithms   (e.g.,
  966.  
  967.         Gallager's  algorithm),  but  they are not implementable.
  968.  
  969.         That is, the proofs of these algorithms make  assumptions
  970.  
  971.         which  could not be made to hold in the real software and
  972.  
  973.         real hardware of a real network.   Hence  the  algorithms
  974.  
  975.         would  not  be  expected to give optimal results (or even
  976.  
  977.         anything   close   to   optimal)   in   real    networks.
  978.  
  979.         Furthermore,  such  algorithms  seem  to rely on updating
  980.  
  981.         protocols  which  are  insufficiently   robust   in   the
  982.  
  983.         operational  environment.   These algorithms also seem to
  984.  
  985.         contain  parameters  whose  precise  settings  are  quite
  986.  
  987.         important   to   proper   performance,   but  whose  most
  988.  
  989.         appropriate values are unknown  and  quite  difficult  to
  990.  
  991.         determine.
  992.  
  993.  
  994.  
  995.      We  realize  that  these rather brusque comments may make it
  996.  
  997. seem like we are giving short  shrift  to  the  consideration  of
  998.  
  999. optimizing  algorithms.   We  have  made these comments simply in
  1000.  
  1001.                              - 17 -
  1002.  
  1003. IEN 189                              Bolt Beranek and Newman Inc.
  1004.                                                     Eric C. Rosen
  1005.  
  1006.  
  1007. order to state our reasons for not giving  further  consideration
  1008.  
  1009. to  such  algorithms.   Arguing  in  support  of  these  reasons,
  1010.  
  1011. however, would require another paper.
  1012.  
  1013.  
  1014.      Another problem with optimal  routing  algorithms  which  is
  1015.  
  1016. more  specific  to  the  internet  environment has to do with the
  1017.  
  1018. requirement that the capacities  of  the  network  components  be
  1019.  
  1020. known.  With telephone circuits as the "links", it is possible to
  1021.  
  1022. assign  a  fixed  capacity and fixed propagation and transmission
  1023.  
  1024. delays to each  link.   With  packet-switching  networks  as  the
  1025.  
  1026. "links",  it  is  doubtful  that  this  even makes sense.  If two
  1027.  
  1028. gateways are connected by the ARPANET, there is no number we  can
  1029.  
  1030. assign  as  the  capacity  of the "link" connecting the gateways!
  1031.  
  1032. The amount of throughput that can be sent  between  two  gateways
  1033.  
  1034. via  the ARPANET is a highly variable quantity, with dependencies
  1035.  
  1036. on hundreds of other things going on within the ARPANET.   It  is
  1037.  
  1038. hard  enough  to  get  a  handle  on  just  what other things the
  1039.  
  1040. throughput of a given connection depends on; we  certainly  can't
  1041.  
  1042. express this dependency as a function, or assign numerical values
  1043.  
  1044. to  the  "capacity."   This  seems  to  mean that currently known
  1045.  
  1046. optimal routing algorithms are really quite  useless  within  the
  1047.  
  1048. context of the internet.  Of course, they are not too useful even
  1049.  
  1050. in  individual  networks,  when  considered  as  the  operational
  1051.  
  1052. routing algorithm of the network.  They are,  however,  sometimes
  1053.  
  1054. useful as a benchmark to which the operational routing algorithms
  1055.  
  1056. can  be  compared.   That is, it is a meaningful question to ask,
  1057.  
  1058.                              - 18 -
  1059.  
  1060. IEN 189                              Bolt Beranek and Newman Inc.
  1061.                                                     Eric C. Rosen
  1062.  
  1063.  
  1064. "how close does SPF routing in the  ARPANET  come  to  optimal?",
  1065.  
  1066. where "optimal" is defined as the result produced by some optimal
  1067.  
  1068. algorithm,  run off-line.  Within the context of the internet, it
  1069.  
  1070. is difficult even to give meaning to this question.  There is  no
  1071.  
  1072. mathematical model of the internet to which we can appeal.
  1073.  
  1074.  
  1075.      This also raises an interesting question about the design of
  1076.  
  1077. the  internet topology, i.e., where to place the gateways and how
  1078.  
  1079. best to interconnect them.  The usual mathematical techniques for
  1080.  
  1081. trying to optimize network topological design  also  assume  some
  1082.  
  1083. fixed  assignment  of capacity to the links; it's not obvious how
  1084.  
  1085. such techniques can be extended to the internet.
  1086.  
  1087.  
  1088. 4.3  Some Issues in SPF Routing
  1089.  
  1090.  
  1091.      Even if we give up the quest for optimal routing, there  are
  1092.  
  1093. still  a number of substantive things we can require of a routing
  1094.  
  1095. algorithm.  For example, we would  like  to  have  some  form  of
  1096.  
  1097. distributed  routing, rather than centralized routing, simply for
  1098.  
  1099. reasons of robustness.   ("Distributed  routing"  refers  to  any
  1100.  
  1101. routing  scheme  in  which  each  Switch computes its own routing
  1102.  
  1103. table.)  What this means basically is an algorithm based more  or
  1104.  
  1105. less  on the routing algorithm of the ARPANET, i.e., an algorithm
  1106.  
  1107. which runs in each Switch and computes the shortest path to  each
  1108.  
  1109. other  Switch,  based  upon (dynamically determined) knowledge of
  1110.  
  1111. the connectivity  of  the  internet  Network  Structure,  and  an
  1112.  
  1113. assignment   of  "length"  to  each  Pathway  that  connects  two
  1114.  
  1115.                              - 19 -
  1116.  
  1117. IEN 189                              Bolt Beranek and Newman Inc.
  1118.                                                     Eric C. Rosen
  1119.  
  1120.  
  1121. Switches.  Routing algorithms of this sort can  be  characterized
  1122.  
  1123. by  three separable components: (a) the algorithm used to compute
  1124.  
  1125. the shortest path, given the assignment of lengths  to  Pathways,
  1126.  
  1127. (b) the algorithm used to assign a length to a given Pathway, and
  1128.  
  1129. (c)  the  protocol  used  by  the  Switches  for  sharing routing
  1130.  
  1131. information.
  1132.  
  1133.  
  1134.      The most efficient shortest path algorithm that we  know  of
  1135.  
  1136. is  the  SPF  algorithm  of the ARPANET [1,3] (which is basically
  1137.  
  1138. just a modification of Dijkstra's shortest path  algorithm),  and
  1139.  
  1140. we  propose to base an internet routing algorithm on this.  There
  1141.  
  1142. are other algorithms for performing a shortest path  computation,
  1143.  
  1144. but  the  SPF  algorithm  seems  to  dominate them.  One possible
  1145.  
  1146. alternative to SPF would be something based  on  the  distributed
  1147.  
  1148. computation  of  the original ARPANET routing algorithm (which is
  1149.  
  1150. the basis for the current Catenet routing), but we  have  studied
  1151.  
  1152. that  algorithm  at  great  length  and in great detail and it is
  1153.  
  1154. inferior to SPF in a large variety of ways [3].  There  are  many
  1155.  
  1156. other shortest path algorithms (such as Floyd's algorithm, or the
  1157.  
  1158. algorithm advocated by Perlman in IEN 120), but the efficiency of
  1159.  
  1160. these  algorithms does not compare with that of SPF.  We will not
  1161.  
  1162. consider the issue of choosing  a  shortest  path  algorithm  any
  1163.  
  1164. further.
  1165.  
  1166.  
  1167.      In  the ARPANET, the "length" assigned to a line is just the
  1168.  
  1169. average per-packet delay over that line during a preceding period
  1170.  
  1171.  
  1172.                              - 20 -
  1173.  
  1174. IEN 189                              Bolt Beranek and Newman Inc.
  1175.                                                     Eric C. Rosen
  1176.  
  1177.  
  1178. of ten seconds.  The current Catenet routing algorithm assigns  a
  1179.  
  1180. length  of  1  to each Pathway, irrespective of the delay.  Other
  1181.  
  1182. possible assignments of lengths to Pathways  are  also  possible.
  1183.  
  1184. We  will  recommend  the use of measured delay as the best metric
  1185.  
  1186. for the internet routing algorithm to use, and we argue for  this
  1187.  
  1188. proposal  in  sections 4.3.1 and 4.3.3.  Section 4.3.2 covers the
  1189.  
  1190. related topic of "load splitting."  (One purpose of that  section
  1191.  
  1192. is  to  show  that the two topics are indeed related, and in ways
  1193.  
  1194. more subtle than generally realized.)  In section 4.4, we discuss
  1195.  
  1196. some of the issues in the design of an algorithm to  measure  the
  1197.  
  1198. delays.
  1199.  
  1200.  
  1201.      In  the  ARPANET,  a  routing  update  generated by an IMP A
  1202.  
  1203. specifies the average per-packet delay on each  of  A's  outgoing
  1204.  
  1205. lines.   Every  update generated by an IMP is sent to every other
  1206.  
  1207. IMP in the network, not just to the neighboring IMPs, as  in  the
  1208.  
  1209. Catenet  routing  algorithm.   This  updating  protocol,  and its
  1210.  
  1211. applicability to the internet, are discussed in section 4.5.
  1212.  
  1213.  
  1214.      Although a routing scheme can be divided into  a  number  of
  1215.  
  1216. separable  components,  it  is important to keep in mind that the
  1217.  
  1218. ultimate characteristics of the routing scheme will  result  from
  1219.  
  1220. the  combination  of  the  components.   A routing scheme must be
  1221.  
  1222. judged as a whole.  The reader should try to focus throughout  on
  1223.  
  1224. how  the  components  work together, and resist the temptation to
  1225.  
  1226. judge each component separately.
  1227.  
  1228.  
  1229.                              - 21 -
  1230.  
  1231. IEN 189                              Bolt Beranek and Newman Inc.
  1232.                                                     Eric C. Rosen
  1233.  
  1234.  
  1235. 4.3.1  Min-Hop Routing (Why Not to Use it)
  1236.  
  1237.  
  1238.      The simplest routing scheme which is based  on  having  each
  1239.  
  1240. Switch  compute  its  shortest  path  to  each  other  Switch  is
  1241.  
  1242. "min-hop" routing.  In min-hop routing, all Pathways are assigned
  1243.  
  1244. unit length, so that the shortest path between  two  Switches  is
  1245.  
  1246. just   that  path  which  has  fewer  Pathways  than  any  other.
  1247.  
  1248. (Generally, ties are broken arbitrarily.)  This sort  of  routing
  1249.  
  1250. is  used  in the current Catenet, where traffic is routed through
  1251.  
  1252. the  fewest  possible  number  of   intermediate   networks   (or
  1253.  
  1254. equivalently,   through   the   fewest   number  of  intermediate
  1255.  
  1256. gateways.)  This form of routing is quite simple,  and  does  not
  1257.  
  1258. require  us  to  worry about anything as complicated as detecting
  1259.  
  1260. changes in load or delay in  remote  components  of  the  Network
  1261.  
  1262. Structure.  Such changing conditions within the Network Structure
  1263.  
  1264. have  no  effect at all on the routing.  This form of routing can
  1265.  
  1266. be done with the minimal amount of overhead (in terms of the need
  1267.  
  1268. to send routing updates from Switch to Switch).  Updates need  to
  1269.  
  1270. be sent only when the Pathways go down or come up.  Any algorithm
  1271.  
  1272. which  attempts  to  be more responsive to changing conditions in
  1273.  
  1274. the Network Structure than  min-hop  routing  still  needs  these
  1275.  
  1276. up/down   updates,   plus   more  besides.   Min-hop  routing  is
  1277.  
  1278. definitely what one would use if one wanted to put  in  a  "quick
  1279.  
  1280. and   dirty"  routing  algorithm,  and  put  off  worrying  about
  1281.  
  1282. complexities until some  unspecified  later  time.   It  is  also
  1283.  
  1284. possible  to  argue  for  min-hop routing in the internet on more
  1285.  
  1286. principled grounds, as follows:
  1287.                              - 22 -
  1288.  
  1289. IEN 189                              Bolt Beranek and Newman Inc.
  1290.                                                     Eric C. Rosen
  1291.  
  1292.  
  1293.      "In general, it is not unreasonable to expect that the  more
  1294.      component networks an internet packet goes through, the less
  1295.      likely  it  is to get to its destination, and the longer its
  1296.      delay is likely to be, if it does reach its destination.  We
  1297.      might expect that the number of component networks a message
  1298.      goes through would generally correlate fairly high with  the
  1299.      delay  of  the message, and would generally correlate fairly
  1300.      low with the obtainable throughput of a host-host transfer."
  1301.  
  1302.  
  1303.      Unfortunately, this sort of reasoning  is  only  valid  when
  1304.  
  1305. applied   to  a  Network  Structure   consisting  of  homogeneous
  1306.  
  1307. Pathways, which have  similar  characteristics  with  respect  to
  1308.  
  1309. delay,  throughput,  and reliability.  This is rather unlikely to
  1310.  
  1311. be the case in the internet, whose distinguishing  characteristic
  1312.  
  1313. is  the  heterogeneity  of its Pathways.  Where the Pathways of a
  1314.  
  1315. Network Structure have widely varying characteristics, delay  and
  1316.  
  1317. throughput  are not very likely to correlate well simply with the
  1318.  
  1319. number of hops.
  1320.  
  1321.  
  1322.      It is true that the delay-oriented routing  of  the  ARPANET
  1323.  
  1324. generally  gives  the min-hop paths.  (Remember, though, that the
  1325.  
  1326. ARPANET,  unlike  the   internet,   has   generally   homogeneous
  1327.  
  1328. Pathways.)   Min-hop  routing is all right for the "normal" case,
  1329.  
  1330. where there  are  no  areas  of  congestion  in  the  network  or
  1331.  
  1332. internet,  no areas where the delay is unusually high compared to
  1333.  
  1334. other areas.   Routing,  however,  is  no  different  from  other
  1335.  
  1336. computer  system  applications,  in that a scheme that works well
  1337.  
  1338. only in  the  normal  case  just  is  not  robust  enough  to  be
  1339.  
  1340. satisfactory.   (Think  of  a magnetic tape driver which works in
  1341.  
  1342. the normal case, where no tape errors are encountered, but  which
  1343.  
  1344.                              - 23 -
  1345.  
  1346. IEN 189                              Bolt Beranek and Newman Inc.
  1347.                                                     Eric C. Rosen
  1348.  
  1349.  
  1350. crashes  the  system  in  the  presence of "unusual" events, like
  1351.  
  1352. errors on the tape.  Such a  driver  may  be  acceptable  if  one
  1353.  
  1354. accesses  one tape a month, but not if one needs to read or write
  1355.  
  1356. ten tapes a day.  The analogy is that min-hop routing may perform
  1357.  
  1358. acceptably in an experimental network with little traffic, but is
  1359.  
  1360. much less likely to be acceptable in a heavily loaded operational
  1361.  
  1362. network.)  It is extremely common for some area of the network to
  1363.  
  1364. be much more congested than another, so that traffic flows  which
  1365.  
  1366. traverse  a  particular  area experience a very much longer delay
  1367.  
  1368. (and lower throughput) than traffic flows which avoid that  area.
  1369.  
  1370. Significant  imbalances  in  load cause significant reductions in
  1371.  
  1372. the  correlation  between  hop-count   and   performance.    Such
  1373.  
  1374. imbalances  may not be present in a network initially, but if the
  1375.  
  1376. ARPANET experience is any indication, imbalances start  to  occur
  1377.  
  1378. with  increasing  frequency as network utilization grows.  If the
  1379.  
  1380. routing algorithm cannot account  for  such  imbalances,  network
  1381.  
  1382. performance  problems  will  start  to occur with ever-increasing
  1383.  
  1384. frequency  as  the  network  gains  more  users.   This  was  our
  1385.  
  1386. experience  with the original ARPANET routing algorithm.  For all
  1387.  
  1388. its widely publicized faults, it  provided  generally  acceptable
  1389.  
  1390. performance as long as the network was very lightly utilized, but
  1391.  
  1392. its  failures became more and more evident as the ARPANET shifted
  1393.  
  1394. from a research prototype to a  communications  utility.   If  we
  1395.  
  1396. expect  our  network or internet to be heavily used by real users
  1397.  
  1398. who are sending  real  data  that  they  really  need  for  their
  1399.  
  1400.  
  1401.                              - 24 -
  1402.  
  1403. IEN 189                              Bolt Beranek and Newman Inc.
  1404.                                                     Eric C. Rosen
  1405.  
  1406.  
  1407. applications, OUR ROUTING ALGORITHM WILL HAVE TO BE ROBUST ENOUGH
  1408.  
  1409. TO DETECT EXCEPTIONAL CONDITIONS AND TO ROUTE THE TRAFFIC IN SUCH
  1410.  
  1411. A  WAY  AS  TO MINIMIZE THE EFFECT OF THE EXCEPTIONAL CONDITIONS.
  1412.  
  1413. IF AREAS OF THE NETWORK BECOME CONGESTED OR EXPERIENCE  UNUSUALLY
  1414.  
  1415. LONG  DELAYS, THEN WE HAVE TO BE ABLE TO ROUTE THE TRAFFIC AROUND
  1416.  
  1417. THESE AREAS, instead of blindly sending  traffic  into  congested
  1418.  
  1419. areas.   At a certain level of congestion, sending traffic into a
  1420.  
  1421. congested area is like sending it into a black hole; the  traffic
  1422.  
  1423. will  never  leave  the  area  to  progress  to  its destination.
  1424.  
  1425. Sending traffic into a congested area  also  induces  a  feedback
  1426.  
  1427. effect,   causing  the  congestion  to  spread  farther  than  it
  1428.  
  1429. otherwise would, and making it that much  less  likely  that  the
  1430.  
  1431. congestion  will  dissipate.   Any routing algorithm which cannot
  1432.  
  1433. take this into account will not be robust enough to survive in  a
  1434.  
  1435. real operational environment.
  1436.  
  1437.  
  1438.      Min-hop  routing also has another disadvantage which is more
  1439.  
  1440. specific to the internet environment.  Let  N1,  N2,  and  N3  be
  1441.  
  1442. three  networks,  and suppose we have to get some traffic from N1
  1443.  
  1444. to N3 by using N2 as a transit network.  Let  G12  be  a  gateway
  1445.  
  1446. connecting  N1 and N2, let G23 be a gateway connecting N2 and N3,
  1447.  
  1448. and let G2X  be  a  gateway  which  connects  N2  to  some  other
  1449.  
  1450. unspecified network.  If we use min-hop routing, then any traffic
  1451.  
  1452. which must go from G12 to G23 must go "directly", through network
  1453.  
  1454. N2, without stopping at G2X, because the path G12-G2X-G23 has one
  1455.  
  1456. more  hop  than the path G12-G23.  Perhaps this doesn't seem like
  1457.  
  1458.                              - 25 -
  1459.  
  1460. IEN 189                              Bolt Beranek and Newman Inc.
  1461.                                                     Eric C. Rosen
  1462.  
  1463.  
  1464. much of a restriction; why would one want to have traffic stop at
  1465.  
  1466. the intermediate gateway G2X when it could go directly  from  G12
  1467.  
  1468. to G23?  Actually, two possible reasons come to mind immediately.
  1469.  
  1470. The  first  reason  has  to  do  with the possible effects of the
  1471.  
  1472. network's end-end protocol.   In  the  ARPANET,  for  example,  a
  1473.  
  1474. source  host  is  allowed  to  send  only  8  messages to a given
  1475.  
  1476. destination host before receiving the RFNM for the first of the 8
  1477.  
  1478. messages.   Hence  the  throughput  obtainable  on  a   host-host
  1479.  
  1480. connection is inversely related to the amount of time it takes to
  1481.  
  1482. get  a  RFNM  from  the  destination host to the source host.  It
  1483.  
  1484. follows that higher throughputs are obtainable between hosts that
  1485.  
  1486. are "near" each other than between hosts that are "far" from each
  1487.  
  1488. other.  It is also possible that G12 and G2X will be near to each
  1489.  
  1490. other, and that G2X and G23 will be near to each other, but  that
  1491.  
  1492. G12  and  G23  will  be  far  from each other.  So the throughput
  1493.  
  1494. obtainable in a transfer between G12 and G23  may  be  less  than
  1495.  
  1496. that  obtainable in a transfer between G12 and G2X, and less than
  1497.  
  1498. that obtainable in a transfer between G2X and  G23.   It  follows
  1499.  
  1500. that the throughput obtainable between G12 and G23 via G2X may be
  1501.  
  1502. higher  than  the  throughput  obtainable  between  G12  and  G23
  1503.  
  1504. directly.  Basically, by using an  additional  gateway  hop,  the
  1505.  
  1506. ninth  message  from  G12  can  be put into the network while the
  1507.  
  1508. first message is still in transit from G2X to G23, while  without
  1509.  
  1510. the  intermediate hop, this is not possible.  Of course, the best
  1511.  
  1512. solution to this sort of problem would  be  to  fix  the  end-end
  1513.  
  1514.  
  1515.                              - 26 -
  1516.  
  1517. IEN 189                              Bolt Beranek and Newman Inc.
  1518.                                                     Eric C. Rosen
  1519.  
  1520.  
  1521. protocol  so  that  it  does not impose this sort of restriction.
  1522.  
  1523. Our present point, however, is that our routing algorithm  should
  1524.  
  1525. not rule out the possibility of this sort of strategy.  Note that
  1526.  
  1527. by  using an intermediate gateway hop, we might not only increase
  1528.  
  1529. throughput, but also decrease the delay (since  a  ninth  message
  1530.  
  1531. would not be blocked as long.)
  1532.  
  1533.  
  1534.      (It  is  interesting  to  think  about  whether this sort of
  1535.  
  1536. strategy might not be useful entirely within the ARPANET.)
  1537.  
  1538.  
  1539.      Another possible scenario in which an  intermediate  gateway
  1540.  
  1541. hop  might  be  useful  occurs  if  the  intermediate  gateway is
  1542.  
  1543. multi-homed.  It is possible that an intermediate gateway will be
  1544.  
  1545. homed to two IMPs which are distant from each  other  within  the
  1546.  
  1547. network.   If  so,  the  intermediate  gateway  may be used as an
  1548.  
  1549. "expressway" around a congested area of the network.
  1550.  
  1551.  
  1552.      If we replace the intermediate gateway G2X with two gateways
  1553.  
  1554. G24 and G42, we also have the possibility of sending traffic from
  1555.  
  1556. N1 through G12 into N2 to G24 through N4 to G42 into  N2  to  G23
  1557.  
  1558. and  thence into the destination network N3.  This is akin to the
  1559.  
  1560. oft-discussed expressway problem, but cannot  be  handled  within
  1561.  
  1562. the  framework  of  min-hop routing.  Of course, it might be very
  1563.  
  1564. difficult to take account of such factors, but one would not want
  1565.  
  1566. to have a routing scheme which makes it absolutely impossible.
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.                              - 27 -
  1573.  
  1574. IEN 189                              Bolt Beranek and Newman Inc.
  1575.                                                     Eric C. Rosen
  1576.  
  1577.  
  1578.      Still another disadvantage of min-hop routing in the Catenet
  1579.  
  1580. is the following.  The current Catenet  routing  algorithm,  when
  1581.  
  1582. faced  with  three  gateways  on  the same network, considers the
  1583.  
  1584. three to be  equidistant.   However,  the  delay  and  throughput
  1585.  
  1586. obtainable from gateway A to gateway B may be very much different
  1587.  
  1588. than the throughput obtainable from gateway A to gateway C.  In a
  1589.  
  1590. large  distributed  network like the ARPANET, some pairs of hosts
  1591.  
  1592. are  connected   by   high-performance   paths,   and   some   by
  1593.  
  1594. low-performance  paths (either because they are separated by many
  1595.  
  1596. hops, or because the path between them  is  under-trunked,  etc.)
  1597.  
  1598. Allowing  the  routing  algorithm  to  be sensitive to this could
  1599.  
  1600. potentially have a large impact on the internet performance.
  1601.  
  1602.  
  1603.      There may not be any  network  that  actually  uses  min-hop
  1604.  
  1605. routing,  except  for  the Catenet.  There are, however, networks
  1606.  
  1607. that use a variant of  it,  which  we  might  call  "fixed  cost"
  1608.  
  1609. routing.  In fixed cost routing, each Pathway is still assigned a
  1610.  
  1611. constant  length,  but  not  all  Pathways  are assigned the same
  1612.  
  1613. length, and some Pathways have a length which is not equal to  1.
  1614.  
  1615. In a scheme like this, one attempts to assign values of length so
  1616.  
  1617. that  slow-speed  lines  appear  longer  than  high-speed  lines,
  1618.  
  1619. reliable lines appear shorter than  unreliable  ones,  and  lines
  1620.  
  1621. with  high  propagation  delays appear longer than lines with low
  1622.  
  1623. propagation delays.  This sort of routing is used in DATAPAC  and
  1624.  
  1625. in   DECNET.   Both  those  network  architectures  have  routing
  1626.  
  1627. algorithms based on the original ARPANET routing algorithm.   The
  1628.  
  1629.                              - 28 -
  1630.  
  1631. IEN 189                              Bolt Beranek and Newman Inc.
  1632.                                                     Eric C. Rosen
  1633.  
  1634.  
  1635. designers of those architectures apparently realized that min-hop
  1636.  
  1637. routing  is  not  very  satisfactory  if  the  links  are  not of
  1638.  
  1639. relatively homogeneous quality, but were  probably  wary  of  the
  1640.  
  1641. problems that the ARPANET's original algorithm had in adapting to
  1642.  
  1643. changing  traffic conditions.  They avoided these problems by not
  1644.  
  1645. adapting at all to changing traffic conditions.  Of course,  this
  1646.  
  1647. is  the  weakness  in  fixed cost routing.  It may be better than
  1648.  
  1649. min-hop routing  in  a  lightly  loaded  Network  Structure  with
  1650.  
  1651. heterogeneous Pathways, but in a heavily loaded Network Structure
  1652.  
  1653. with unbalanced load it really is no better than min-hop routing,
  1654.  
  1655. and will still send traffic right into congested areas.
  1656.  
  1657.  
  1658.      We  have been emphasizing the claim that routing ought to be
  1659.  
  1660. able to detect congestion and route traffic around it.  Some  may
  1661.  
  1662. wonder  whether  we are confusing the proper functions of routing
  1663.  
  1664. with the proper functions of congestion control.  That is not the
  1665.  
  1666. case.  Congestion control schemes  generally  try  to  limit  the
  1667.  
  1668. amount  of  traffic  entering  a  network  so as to prevent or to
  1669.  
  1670. reduce the overloading of some resource or of the whole  network.
  1671.  
  1672. When  congestion  actually  exists in the network, however, it is
  1673.  
  1674. the job of routing to try to send traffic  around  the  congested
  1675.  
  1676. areas;  otherwise  the  routing actually causes the congestion to
  1677.  
  1678. increase.  Of course, one might attempt  to  design  the  routing
  1679.  
  1680. algorithm  under  the  assumption that there will be a congestion
  1681.  
  1682. control scheme that will make  congestion  impossible.   However,
  1683.  
  1684. such  a  design  could not be very robust.  If we want to build a
  1685.  
  1686.                              - 29 -
  1687.  
  1688. IEN 189                              Bolt Beranek and Newman Inc.
  1689.                                                     Eric C. Rosen
  1690.  
  1691.  
  1692. robust Network Structure which will continue to operate  under  a
  1693.  
  1694. variety  of  unforeseen  conditions,  then  we want each software
  1695.  
  1696. module or protocol to be designed with the  assumption  that  the
  1697.  
  1698. other  modules  or  protocols  will  be  less  than optimal.  The
  1699.  
  1700. resulting system will be much less prone to  system-wide  failure
  1701.  
  1702. than one which is designed so that no part of it will work at all
  1703.  
  1704. unless every part of it works perfectly.  Although we will not be
  1705.  
  1706. discussing explicitly, in this paper, any schemes for controlling
  1707.  
  1708. the  amount  of  traffic  which  is  input  to the internet, that
  1709.  
  1710. doesn't mean that we can ignore the  way  in  which  the  routing
  1711.  
  1712. algorithm affects and is affected by the existence of congestion.
  1713.  
  1714. Particular  problems  related  to  overload  of network resources
  1715.  
  1716. should be discussed in whatever context they  arise  in,  without
  1717.  
  1718. worrying about whether the problem is properly called "congestion
  1719.  
  1720. control"  or "routing."  There is in general no way of telling in
  1721.  
  1722. advance whether the best solution to a particular  problem  is  a
  1723.  
  1724. routing  solution  or  a congestion control solution, and putting
  1725.  
  1726. labels on the problems just restricts our thinking.
  1727.  
  1728.  
  1729. 4.3.2  Load Splitting
  1730.  
  1731.  
  1732.      Routing  in  the  ARPANET  has  always   been   "single-path
  1733.  
  1734. routing."   We  mean  by  this  that  at  any  given  moment, the
  1735.  
  1736. ARPANET's routing algorithm provides only a single  path  between
  1737.  
  1738. each  pair of IMPs.  All traffic which enters the network at some
  1739.  
  1740. particular time, originating at IMP A and  destined  for  IMP  B,
  1741.  
  1742.  
  1743.                              - 30 -
  1744.  
  1745. IEN 189                              Bolt Beranek and Newman Inc.
  1746.                                                     Eric C. Rosen
  1747.  
  1748.  
  1749. will  travel  over  the  same  path.  Actually, this statement is
  1750.  
  1751. somewhat oversimplified, since there might be a change of  routes
  1752.  
  1753. while some traffic is already in transit.  The point, however, is
  1754.  
  1755. that at any given time, each source or intermediate IMP will send
  1756.  
  1757. all  traffic  for  a  particular  destination  IMP  to  a  unique
  1758.  
  1759. neighbor; it cannot split the traffic among several neighbors.
  1760.  
  1761.  
  1762.      Routing in the  Catenet  is  currently  somewhat  different.
  1763.  
  1764. Suppose  gateway  A  has  two  neighbors,  B  and C, and has some
  1765.  
  1766. traffic to send to gateway E.  The routing  algorithm  run  in  A
  1767.  
  1768. assigns  a distance value to the path to gateway E via neighbor B
  1769.  
  1770. and a distance value to the path to E via  neighbor  C.   If  the
  1771.  
  1772. distance  from A to E via B is the same as the distance from A to
  1773.  
  1774. E via C, then gateway A will alternate between use  of  B  and  C
  1775.  
  1776. when  sending traffic to E.  That is, A makes simultaneous use of
  1777.  
  1778. two distinct paths to E.  Such a scheme would  be  somewhat  more
  1779.  
  1780. difficult  to  put  into  SPF routing, because in SPF routing, no
  1781.  
  1782. assignment of distance values from A to E via  each  of  the  two
  1783.  
  1784. neighbors  is  generated.  Rather, only one path is computed, via
  1785.  
  1786. one of the neighbors, and only the distance on that one  path  is
  1787.  
  1788. known.   Distance  on  other  paths  is  not  computed by the SPF
  1789.  
  1790. algorithm.  (On the other hand, the SPF algorithm  generates  the
  1791.  
  1792. entire  path,  so that each Switch knows which other Switches its
  1793.  
  1794. traffic will be routed through on the  way  to  the  destination.
  1795.  
  1796. The  original  ARPANET algorithm does not do this, but only tells
  1797.  
  1798. each Switch which of its neighbors to use when sending traffic to
  1799.  
  1800. the destination.)
  1801.                              - 31 -
  1802.  
  1803. IEN 189                              Bolt Beranek and Newman Inc.
  1804.                                                     Eric C. Rosen
  1805.  
  1806.  
  1807.      What is the significance of this?  It seems to  be  commonly
  1808.  
  1809. regarded  as  obvious that multi-path routing, or load splitting,
  1810.  
  1811. is an important advantage, so that routing algorithms that permit
  1812.  
  1813. it are better than routing algorithms that do not.  However, when
  1814.  
  1815. one asks advocates of multi-path routing why it  is  better  than
  1816.  
  1817. single-path   routing,   a   very  common  answer  seems  to  be,
  1818.  
  1819. "Multi-path  routing  is  better  because  it  provides  multiple
  1820.  
  1821. paths."    This   sort   of   answer   is   rather   superficial.
  1822.  
  1823. Multiple-path routing is NOT a goal  in  and  of  itself;  IT  IS
  1824.  
  1825. IMPORTANT  ONLY  INSOFAR AS IT SERVES SOME MORE FUNDAMENTAL GOAL.
  1826.  
  1827. If a multi-path routing algorithm results in  smaller  delays  or
  1828.  
  1829. larger  throughput than some other algorithm, then that is a good
  1830.  
  1831. reason for favoring it over the  other  algorithm.   Now,  it  is
  1832.  
  1833. certainly true that any routing algorithm which OPTIMIZES network
  1834.  
  1835. delay  or  throughput  will  be  a  multiple-path algorithm.  THE
  1836.  
  1837. CONVERSE, HOWEVER,  IS  NOT  TRUE.   A  routing  algorithm  which
  1838.  
  1839. provides  multiple  paths  does not necessarily optimize delay or
  1840.  
  1841. throughput.  In fact, merely because a routing algorithm provides
  1842.  
  1843. multiple paths, it  does  not  follow  that  it  provides  better
  1844.  
  1845. performance  in  any  respect  than  some other routing algorithm
  1846.  
  1847. which provides only a single path between a pair of Switches.  An
  1848.  
  1849. algorithm which provides a single good path may be  far  superior
  1850.  
  1851. to an algorithm which provides several poor ones.
  1852.  
  1853.  
  1854.      To see this, let's look at some possible effects of the load
  1855.  
  1856. splitting  in the Catenet routing algorithm.  Let A, B, C, D, and
  1857.  
  1858.                              - 32 -
  1859.  
  1860. IEN 189                              Bolt Beranek and Newman Inc.
  1861.                                                     Eric C. Rosen
  1862.  
  1863.  
  1864. E be five gateways, and suppose that there are two possible paths
  1865.  
  1866. from A to E, namely ABDE and ACDE.  The Catenet routing algorithm
  1867.  
  1868. would regard these two paths as equidistant, since that algorithm
  1869.  
  1870. regards two paths as equidistant if they contain the same  number
  1871.  
  1872. of intermediate gateways.  Therefore gateway A would perform load
  1873.  
  1874. splitting  on  its  traffic  to E, sending half of the traffic to
  1875.  
  1876. neighbor B and half  to  neighbor  C.   Does  this  provide  more
  1877.  
  1878. throughput  than  the  use  of  a single one of these paths?  Not
  1879.  
  1880. necessarily.  If the bottleneck on the paths from A to E  is  the
  1881.  
  1882. Pathway  DE,  then  the  use  of these two paths provides no more
  1883.  
  1884. throughput than the use of either one alone.  In fact, if  DE  is
  1885.  
  1886. the  bottleneck, the use of the two paths will probably result in
  1887.  
  1888. lower throughput than the use of  a  single  path.   The  use  of
  1889.  
  1890. several paths increases the likelihood of the packets from A to E
  1891.  
  1892. arriving  out  of  order  at  the  destination host.  Yet as more
  1893.  
  1894. packets arrive out of order, more TCP  resources  are  needed  to
  1895.  
  1896. handle them, and the TCP just has that much more work to do.  TCP
  1897.  
  1898. buffers  that  are  occupied  by  out-of-order  packets cannot be
  1899.  
  1900. "allocated" for receiving more packets, so  acknowledgments  must
  1901.  
  1902. be  delayed, and windows must be kept smaller.  The result of all
  1903.  
  1904. this will be higher  delays  and  lower  throughputs.   This  was
  1905.  
  1906. probably  not  the  intention  of load splitting, but is a likely
  1907.  
  1908. consequence of it.
  1909.  
  1910.  
  1911.      Suppose there really are two independent paths from A  to  E
  1912.  
  1913. which  are  "equidistant", say ABDE and ACFE.  Even here, sending
  1914.  
  1915.                              - 33 -
  1916.  
  1917. IEN 189                              Bolt Beranek and Newman Inc.
  1918.                                                     Eric C. Rosen
  1919.  
  1920.  
  1921. half the packets on each path may only degrade  performance.   To
  1922.  
  1923. see this, suppose each of the Pathways AB, BD, DE, AC, and CF has
  1924.  
  1925. a  capacity  of  50  kbps,  but that link FE has a capacity of 10
  1926.  
  1927. kbps.  Suppose also that we want to send 50 kbps of traffic  from
  1928.  
  1929. A  to  E.   If  we  alternate packets between these two paths, by
  1930.  
  1931. trying to send 25 kbps of traffic each way, we will  be  able  to
  1932.  
  1933. get at most 35 kbps of traffic through to the destination, and we
  1934.  
  1935. will  cause  severe  congestion  on  link FE (which will probably
  1936.  
  1937. result in its being able to carry even less  than  the  rated  10
  1938.  
  1939. kbps, further lowering the network throughput.)  Had we used only
  1940.  
  1941. the  single  path  ABCD,  we  would  have  been able to pass more
  1942.  
  1943. traffic.  Again, we  see  a  situation  where  the  use  of  load
  1944.  
  1945. splitting can reduce throughput and increase delay.
  1946.  
  1947.  
  1948.      This  sort  of  problem  might  at  first  appear  to be too
  1949.  
  1950. unlikely to be worth worrying about.   However,  it  has  already
  1951.  
  1952. occurred  in  the  Catenet, and has caused a significant problem.
  1953.  
  1954. In fact, in the Catenet's actual problem, half of the traffic was
  1955.  
  1956. sent on a path whose capacity was sufficient to  handle  all  the
  1957.  
  1958. traffic,  and  the  other  half of the traffic was sent on a path
  1959.  
  1960. whose capacity was essentially zero (because a network  partition
  1961.  
  1962. made  the  destination  host  unreachable on that path).  In this
  1963.  
  1964. case, load splitting resulted in  the  throughput  being  cut  in
  1965.  
  1966. half,  as  half  the  traffic  was routed down a black hole!  The
  1967.  
  1968. problem was "solved" by  eliminating  one  of  the  two  possible
  1969.  
  1970. paths,  thereby  eliminating  the  possibility of load splitting.
  1971.  
  1972.                              - 34 -
  1973.  
  1974. IEN 189                              Bolt Beranek and Newman Inc.
  1975.                                                     Eric C. Rosen
  1976.  
  1977.  
  1978. However, this does not seem like a proper way to deal  with  this
  1979.  
  1980. problem in the general case.
  1981.  
  1982.  
  1983.      The  Catenet's  load  splitting  has been defended from this
  1984.  
  1985. latter objection as follows:  "If there were no  load  splitting,
  1986.  
  1987. maybe  all  the traffic would have been sent into the black hole,
  1988.  
  1989. not just half."  This is less a defense than a sad commentary  on
  1990.  
  1991. the  state of the Catenet routing; to accept this sort of defense
  1992.  
  1993. is just to give up entirely on the problem of  internet  routing.
  1994.  
  1995.  
  1996.      Someone  may  reply to our first criticism of load splitting
  1997.  
  1998. by saying "maybe the bottlenecks will  be  Pathways  AB  and  AC,
  1999.  
  2000. rather  than DE, in which case the use of two paths does increase
  2001.  
  2002. the throughput."  This reply is correct, but not very  important.
  2003.  
  2004. The  sort  of  load  splitting done in the Catenet might, by pure
  2005.  
  2006. chance, increase throughput in some particular case.   The  point
  2007.  
  2008. though  is  that it is no more likely to increase throughput than
  2009.  
  2010. to decrease it.  Certainly there is no reason to suppose that the
  2011.  
  2012. cases in which it might help are any more likely  to  occur  than
  2013.  
  2014. the cases in which it hurts.  In our experience with the ARPANET,
  2015.  
  2016. schemes  that  seem  a priori as likely to hurt as to help always
  2017.  
  2018. end up hurting more than helping.  (In networking,  Murphy's  law
  2019.  
  2020. is  more  than just a joke.)  Choosing equidistant paths for load
  2021.  
  2022. splitting will generally result in paths  which  are  only  small
  2023.  
  2024. variants  of each other (if it results in any paths at all, since
  2025.  
  2026. there are not necessarily several  equidistant  paths  between  a
  2027.  
  2028.  
  2029.                              - 35 -
  2030.  
  2031. IEN 189                              Bolt Beranek and Newman Inc.
  2032.                                                     Eric C. Rosen
  2033.  
  2034.  
  2035. pair  of  Switches),  and  there is no reason to suppose that the
  2036.  
  2037. bottleneck will not be common to each path.  Even if  we  do  get
  2038.  
  2039. two  paths  which  do  not  share  a  bottleneck,  unless  we try
  2040.  
  2041. explicitly to apportion the flows to the relative  capacities  of
  2042.  
  2043. the  two  paths (rather than just dividing the traffic 50-50), we
  2044.  
  2045. will not, in general, gain any increase in throughput.
  2046.  
  2047.  
  2048.      In chapter 4 of [6], we  actually  devised  a  multiple-path
  2049.  
  2050. routing  scheme,  based  on  SPF,  whose  purpose was to maximize
  2051.  
  2052. throughput.  In this  scheme,  we  make  sure  that  any  set  of
  2053.  
  2054. simultaneously    used    paths    between   two   Switches   are
  2055.  
  2056. "bottleneck-disjoint", (i.e., they don't share a bottleneck),  so
  2057.  
  2058. that  we  know  that we can get more throughput by use of several
  2059.  
  2060. paths.   We  also  devised  a  flow  apportionment  scheme  which
  2061.  
  2062. attempts  to  match  flows  (or  parts of flows) to the available
  2063.  
  2064. capacity of each path.   Anyone  interested  in  seeing  what  it
  2065.  
  2066. really  takes  to  do  multi-path  routing  should  look  at that
  2067.  
  2068. chapter.  The scheme proposed there is  quite  complex,  however,
  2069.  
  2070. and  it  is  not obvious that it will work.  Some simulation work
  2071.  
  2072. will eventually be done on it.  Until that sort of  algorithm  is
  2073.  
  2074. much  better  understood,  it  would  not be very wise to use the
  2075.  
  2076. internet to experiment with it.  It will be difficult  enough  to
  2077.  
  2078. adapt  a  well-understood  and  much-used routing algorithm (like
  2079.  
  2080. that currently in the ARPANET) to the internet environment.   The
  2081.  
  2082. internet  is certainly not a place for experimenting with new and
  2083.  
  2084. untried routing algorithms.
  2085.  
  2086.                              - 36 -
  2087.  
  2088. IEN 189                              Bolt Beranek and Newman Inc.
  2089.                                                     Eric C. Rosen
  2090.  
  2091.  
  2092.      Although it  is  quite  difficult  to  design  a  multi-path
  2093.  
  2094. routing  procedure  that  results  in significant improvements of
  2095.  
  2096. delay or throughput over single-path  routing,  there  are  other
  2097.  
  2098. reasons  for  requiring multiple paths between a pair of Switches
  2099.  
  2100. that are more easily dealt with.  For example, we may be required
  2101.  
  2102. to have different paths  between  a  pair  of  internet  gateways
  2103.  
  2104. because of ACCESS CONTROL RESTRICTIONS.  That is, certain classes
  2105.  
  2106. of  packets  may  not  be  allowed to traverse certain classes of
  2107.  
  2108. networks, so that different routes  would  be  required  for  the
  2109.  
  2110. different  classes of traffic.  We may also decide that different
  2111.  
  2112. types of service that may be requested by the user should  travel
  2113.  
  2114. over different paths, even if the source and destination gateways
  2115.  
  2116. are  the  same  for the different traffic classes (e.g., maybe we
  2117.  
  2118. don't want to use multi-hop satellite  networks  for  interactive
  2119.  
  2120. traffic.)   This  is  easily  handled within the framework of SPF
  2121.  
  2122. routing.  Remember that the SPF algorithm produces  the  shortest
  2123.  
  2124. path  to  a destination, based on an assignment of lengths to the
  2125.  
  2126. Pathways.  Rather than simply assigning a unique length  to  each
  2127.  
  2128. Pathway,  we  can  assign  a  set  of lengths, indexed by traffic
  2129.  
  2130. classes.  We can then produce a set of routing tables, indexed by
  2131.  
  2132. traffic type, such that the routing table  for  a  given  traffic
  2133.  
  2134. type   contains   the   "shortest"  path,  based  on  the  length
  2135.  
  2136. assignments for that traffic type.  For example, if traffic class
  2137.  
  2138. C is not permitted to  traverse  Pathway  P,  the  length  of  P,
  2139.  
  2140. indexed  by  C,  can  be set to infinity.  This ensures that that
  2141.  
  2142.  
  2143.                              - 37 -
  2144.  
  2145. IEN 189                              Bolt Beranek and Newman Inc.
  2146.                                                     Eric C. Rosen
  2147.  
  2148.  
  2149. Pathway will not be part of any path found in the routing  tables
  2150.  
  2151. indexed  by  C.   We  even  have the flexibility to assign to P a
  2152.  
  2153. length which, while not infinite, is much larger than the  length
  2154.  
  2155. of  any  other  Pathway.  In this case, that Pathway will be used
  2156.  
  2157. for traffic of class C only if  EVERY  path  to  the  destination
  2158.  
  2159. includes  it  (i.e.,  only if it can't be avoided).  This sort of
  2160.  
  2161. load splitting might be quite important in the internet,  and  is
  2162.  
  2163. also quite simple to handle.
  2164.  
  2165.  
  2166. 4.3.3  Delay vs. Throughput
  2167.  
  2168.  
  2169.      In  the  ARPANET,  each  IMP  measures the average delay per
  2170.  
  2171. packet on each of its outgoing  lines.   This  average  delay  is
  2172.  
  2173. assigned  as  the  "length"  of  the line, and shortest paths are
  2174.  
  2175. computed on that basis.  We have studied the performance of  this
  2176.  
  2177. algorithm a great deal [5].  It tends to use min-hop routes under
  2178.  
  2179. conditions of light or of uniform load.  However, it does seem to
  2180.  
  2181. take  account  quite well of the varying delays that are produced
  2182.  
  2183. by  lines  of  different  transmission   or   propagation   delay
  2184.  
  2185. characteristics.   Since congestion causes large increases in the
  2186.  
  2187. delays,  congestion  is  generally  detected   by   the   routing
  2188.  
  2189. algorithm,  and  traffic  really is routed around congested areas
  2190.  
  2191. when that is possible.  While we cannot claim  that  our  routing
  2192.  
  2193. algorithm  gives  the  optimal delay, the characteristics that it
  2194.  
  2195. does have seem to be the characteristics  that  we  would  really
  2196.  
  2197. like  to see in any robust, operational network, and particularly
  2198.  
  2199.  
  2200.                              - 38 -
  2201.  
  2202. IEN 189                              Bolt Beranek and Newman Inc.
  2203.                                                     Eric C. Rosen
  2204.  
  2205.  
  2206. in the internet.  The routing tends to  be  stable  on  what  are
  2207.  
  2208. intuitively  the  best  paths, except when exceptional conditions
  2209.  
  2210. arise which make it clear that  some  other  path  is  likely  to
  2211.  
  2212. provide  better performance.  It is this sort of routing which we
  2213.  
  2214. propose for the internet.
  2215.  
  2216.  
  2217.      Before discussing further the use of delay-oriented  routing
  2218.  
  2219. in  the  internet, we would like to briefly consider the issue of
  2220.  
  2221. throughput-oriented routing.  In the previous section, we  argued
  2222.  
  2223. against  the  use  of multi-path routing as a means of optimizing
  2224.  
  2225. throughput, largely  on  the  grounds  that  doing  it  right  is
  2226.  
  2227. extremely difficult (much more so than one might at first think),
  2228.  
  2229. that  the ways of doing it right are quite poorly understood, and
  2230.  
  2231. that the internet is not  a  good  testing  ground  for  new  and
  2232.  
  2233. untried algorithms.  However, one often hears that there are high
  2234.  
  2235. throughput  applications  (bulk  traffic) for which delay doesn't
  2236.  
  2237. matter, and one may wonder whether there  is  not  some  kind  of
  2238.  
  2239. single-path   routing   which   is   more  appropriate  for  such
  2240.  
  2241. applications than is delay-oriented routing.  One scheme that  is
  2242.  
  2243. very commonly suggested is that of routing traffic on the path of
  2244.  
  2245. maximum  excess  capacity, instead of on the path of least delay.
  2246.  
  2247.  
  2248.      Given an algorithm for  determining  the  amount  of  excess
  2249.  
  2250. capacity  on  each  Pathway  (which  could  be quite difficult to
  2251.  
  2252. design for the internet environment -- how do we  know  what  the
  2253.  
  2254. excess  capacity  of  a  packet-switching  network is?), it is no
  2255.  
  2256.  
  2257.                              - 39 -
  2258.  
  2259. IEN 189                              Bolt Beranek and Newman Inc.
  2260.                                                     Eric C. Rosen
  2261.  
  2262.  
  2263. difficult matter to modify the SPF algorithm to produce the paths
  2264.  
  2265. of maximum excess capacity.  However, it would not be a good idea
  2266.  
  2267. to use the resultant routes for bulk traffic.  For one thing,  we
  2268.  
  2269. must  understand that such a routing algorithm would not maximize
  2270.  
  2271. total  network  throughput.   (By   "maximizing   total   network
  2272.  
  2273. throughput",  we  mean  maximizing the amount of traffic that the
  2274.  
  2275. network can handle.)  Suppose, for example, we wanted to send  40
  2276.  
  2277. kbps  of traffic, and had the choice of using a one-hop path with
  2278.  
  2279. excess capacity of 50 kbps, or a 10-hop path, each of whose links
  2280.  
  2281. had an excess capacity of 100 kbps (so that the  total  composite
  2282.  
  2283. path  has  an excess capacity of 100 kbps).  By using the shorter
  2284.  
  2285. path, we use up a total of 40 kbps of network capacity,  capacity
  2286.  
  2287. which  is now unavailable for other traffic.  By using the longer
  2288.  
  2289. path (which is the path of maximum excess capacity), we use up  a
  2290.  
  2291. total  of  10x40 kbps (40 kbps per hop), thereby using up a total
  2292.  
  2293. of 400 kbps which is no longer available for other  traffic.   In
  2294.  
  2295. terms of maximizing the total network throughput, we do better by
  2296.  
  2297. using  the  one-hop  path, rather than the path of maximum excess
  2298.  
  2299. capacity.
  2300.  
  2301.  
  2302.      Maybe we are less interested  in  maximizing  total  network
  2303.  
  2304. throughput  than  in  finding  a path for some particular traffic
  2305.  
  2306. flow which has enough capacity to handle the required  throughput
  2307.  
  2308. of that flow.  We still would not want to use the path of maximum
  2309.  
  2310. excess  capacity,  for that path might have a delay which is much
  2311.  
  2312. too long.  Although we often hear that certain classes of traffic
  2313.  
  2314.                              - 40 -
  2315.  
  2316. IEN 189                              Bolt Beranek and Newman Inc.
  2317.                                                     Eric C. Rosen
  2318.  
  2319.  
  2320. (e.g., file transfer) care only about throughput, not delay, this
  2321.  
  2322. is really a gross oversimplification.  In file transfer, we don't
  2323.  
  2324. care how long  it  takes  for  the  first  packet  to  reach  its
  2325.  
  2326. destination,   AS  LONG  AS  ALL  THE  FOLLOWING  PACKETS  FOLLOW
  2327.  
  2328. IMMEDIATELY, WITH NO DELAYS BETWEEN THE  ARRIVALS  OF  SUCCESSIVE
  2329.  
  2330. PACKETS.  Of course, if there are long delays between the packets
  2331.  
  2332. of a file transfer, the throughput will be very low.  Hence it is
  2333.  
  2334. not  quite  true  to  say  that  file  transfers and the like are
  2335.  
  2336. unconcerned with delay.  If higher level protocols like  TCP  are
  2337.  
  2338. being used, then routing over a path of long delay will certainly
  2339.  
  2340. result  in  lower  throughput.   The reason is as follows.  A TCP
  2341.  
  2342. sender will only send a certain amount of data,  until  he  fills
  2343.  
  2344. the window specified by the TCP receiver.  The size of the window
  2345.  
  2346. is  very  likely  to depend on such network-independent things as
  2347.  
  2348. the amount of resources (e.g., buffers) in the destination  host.
  2349.  
  2350. If  the  path  between  source and destination host is very long,
  2351.  
  2352. then the sending TCP will fill the window, and then have to wait,
  2353.  
  2354. idly, for some  period  of  time  while  his  data  gets  to  the
  2355.  
  2356. destination,  and  while the message indicating the re-opening of
  2357.  
  2358. the window is transmitted from the  receiving  TCP.   Since  this
  2359.  
  2360. network-imposed  long  delay causes the sending TCP to have to be
  2361.  
  2362. idle for some period of time, it holds down the  throughput.   So
  2363.  
  2364. it   seems   that   all   things   considered,   simply   routing
  2365.  
  2366. high-throughput application traffic on the path of maximum excess
  2367.  
  2368. capacity is unlikely to actually result in high throughput.
  2369.  
  2370.  
  2371.                              - 41 -
  2372.  
  2373. IEN 189                              Bolt Beranek and Newman Inc.
  2374.                                                     Eric C. Rosen
  2375.  
  2376.  
  2377.      If we really wanted to  do  single-path  throughput-oriented
  2378.  
  2379. routing,  we  would  need something like the following.  We would
  2380.  
  2381. want to route traffic on the shortest path  (i.e.,  the  path  of
  2382.  
  2383. least   delay)  which  does  not  contain  any  components  whose
  2384.  
  2385. available capacity is too small to handle the needed  throughput.
  2386.  
  2387. This  would prevent us from choosing a path with arbitrarily long
  2388.  
  2389. delays, or a path with too little capacity.  Unfortunately, it is
  2390.  
  2391. almost impossible to find out either what throughput is needed by
  2392.  
  2393. an application,  or  to  find  out  just  what  the  capacity  of
  2394.  
  2395. particular  components  of  the  internet  is.   We might want to
  2396.  
  2397. consider some strategy such as not sending batch traffic on paths
  2398.  
  2399. which include components which are very heavily loaded.  This  is
  2400.  
  2401. fertile  ground for experimentation.  Our present point, however,
  2402.  
  2403. is that the delay-oriented SPF routing  of  the  ARPANET  already
  2404.  
  2405. provides  the  basic  structure  that we need to accommodate this
  2406.  
  2407. sort of strategy.  If we knew that  we  wanted  bulk  traffic  to
  2408.  
  2409. avoid   certain   Pathways   (e.g.,   Pathways  with  too  little
  2410.  
  2411. bandwidth), we could have SPF routing compute the shortest routes
  2412.  
  2413. that did not  include  those  Pathways,  by  using  the  "indexed
  2414.  
  2415. length"  scheme  described in section 4.3.2.  There is no need to
  2416.  
  2417. consider different sorts of routing schemes.
  2418.  
  2419.  
  2420. 4.3.4  Knowing the "Whole Picture"
  2421.  
  2422.  
  2423.      The use of the SPF algorithm requires that every Switch know
  2424.  
  2425. the complete topology of the Network Structure.  That  is,  every
  2426.  
  2427.  
  2428.                              - 42 -
  2429.  
  2430. IEN 189                              Bolt Beranek and Newman Inc.
  2431.                                                     Eric C. Rosen
  2432.  
  2433.  
  2434. Switch  must  know  of  all  the  other Switches, must know which
  2435.  
  2436. Switches are "directly connected" to which  other  Switches,  and
  2437.  
  2438. must  know the "length" of each Pathway.  This is not to say that
  2439.  
  2440. this information is "compiled in", or even  loaded  in  manually.
  2441.  
  2442. Rather,  it  is  determined  dynamically,  in  real-time, through
  2443.  
  2444. interpretation of the routing updates (see section 4.5).   It  is
  2445.  
  2446. this  uniform  global  knowledge  of the topology and the Pathway
  2447.  
  2448. lengths  that  enables  each  Switch  to  run  a  shortest   path
  2449.  
  2450. algorithm,  while  producing routes which are consistent with the
  2451.  
  2452. routes produced by other Switches, so that routing loops  do  not
  2453.  
  2454. form.   The  SPF algorithm does not merely tell a Switch to which
  2455.  
  2456. of its neighbors  it  should  send  packets  for  destination  D.
  2457.  
  2458. Rather,  it  computes  the entire path to the destination Switch.
  2459.  
  2460. However, when a packet is routed, it does not carry with  it  the
  2461.  
  2462. identity  of  the entire route, as computed by its source Switch.
  2463.  
  2464. Each Switch just forwards the packet to the next "hop" along  its
  2465.  
  2466. route.   The  fact  that  all  Switches have the same information
  2467.  
  2468. about the topology is what ensures that this routing will be free
  2469.  
  2470. of loops.
  2471.  
  2472.  
  2473.      Since each Switch performs its routing based on  a  complete
  2474.  
  2475. picture  of  the  topology  of the Network Structure, we can call
  2476.  
  2477. this sort of routing scheme a "whole picture"  scheme.   In  this
  2478.  
  2479. section,  we will compare "whole picture" schemes with some other
  2480.  
  2481. schemes which do not require the Switches to have uniform  global
  2482.  
  2483. knowledge of the topology.  We argue that "whole picture" schemes
  2484.  
  2485. are always superior.
  2486.                              - 43 -
  2487.  
  2488. IEN 189                              Bolt Beranek and Newman Inc.
  2489.                                                     Eric C. Rosen
  2490.  
  2491.  
  2492.      The original ARPANET routing scheme, and the current Catenet
  2493.  
  2494. routing  scheme,  are  not  "whole  picture"  schemes.   In these
  2495.  
  2496. routing schemes,  no  Switch  need  have  any  knowledge  of  the
  2497.  
  2498. topology, other than who its own immediate neighbors are, and the
  2499.  
  2500. lengths  of  the  Pathways  to  its  immediate  neighbors.  These
  2501.  
  2502. algorithms function as follows.  When a Switch first comes up, it
  2503.  
  2504. forms a hypothesis as to the best neighbor to which to send  data
  2505.  
  2506. for each possible destination Switch.  This initial hypothesis is
  2507.  
  2508. based  only on its own local information about the lengths of the
  2509.  
  2510. Pathways  to  its  neighbors.   It  then  informs  its  immediate
  2511.  
  2512. neighbors of its hypotheses, and is informed of their hypotheses.
  2513.  
  2514. It   then  forms  a  new  hypothesis,  based  on  its  own  local
  2515.  
  2516. information  AND  the  hypotheses  communicated  to  it  by   its
  2517.  
  2518. neighbors.   It  then  exchanges  hypotheses  with  its neighbors
  2519.  
  2520. again, and again, and again, until  its  own  hypotheses  are  in
  2521.  
  2522. complete  agreement  with  those of its neighbors, at which point
  2523.  
  2524. stability is reached.
  2525.  
  2526.  
  2527.      To see the difference between this sort  of  routing  scheme
  2528.  
  2529. and the "whole picture" scheme, consider the following situation.
  2530.  
  2531. Suppose we have 100 people in a room, sitting in chairs which are
  2532.  
  2533. properly lined up so that we can talk of each person's having two
  2534.  
  2535. immediate  neighbors.   We  also have a picture of an object, and
  2536.  
  2537. our goal is to have ALL the people agree on the identity  of  the
  2538.  
  2539. depicted   object.   Now  we  have  a  choice  of  two  different
  2540.  
  2541. procedures for bringing this about:
  2542.  
  2543.                              - 44 -
  2544.  
  2545. IEN 189                              Bolt Beranek and Newman Inc.
  2546.                                                     Eric C. Rosen
  2547.  
  2548.  
  2549. Procedure 1: Cut the diagram into 100 pieces, and give one  piece
  2550.              to  each person.  Each person is now allowed to look
  2551.              at his one piece, and then form a hypothesis  as  to
  2552.              what  is  depicted  in  the full picture.  Then each
  2553.              person  can  exchange  hypotheses  only   with   his
  2554.              immediate  neighbors.   Then  each person can form a
  2555.              new hypothesis and exchange that with his  immediate
  2556.              neighbors.   The  procedure  terminates when all 100
  2557.              people agree on what is depicted.
  2558.  
  2559. Procedure 2: Make 100 Xerox copies of the diagram, and distribute
  2560.              the copies to each person.
  2561.  
  2562.  
  2563. If we really think it is important for each person to  know  what
  2564.  
  2565. is  depicted  in  the  picture,  then  we  will  certainly follow
  2566.  
  2567. procedure 2,  which  will  make  the  whole  picture  immediately
  2568.  
  2569. available  to all participants.  Procedure 1 would only be useful
  2570.  
  2571. as a party game.  It would  be  quite  amusing  to  see  all  the
  2572.  
  2573. ridiculous  hypotheses  that  are  formed before all participants
  2574.  
  2575. converge to the correct one, IF they ever do manage to  converge.
  2576.  
  2577. Even  if  they  do converge, it might take quite a long time.  We
  2578.  
  2579. must remember that different people form hypotheses at  different
  2580.  
  2581. rates,  and can communicate them at different rates.  Some people
  2582.  
  2583. may simply refuse to talk to certain neighbors at all.  If  one's
  2584.  
  2585. left-hand  neighbor  has  formed  a  good  hypothesis,  but one's
  2586.  
  2587. right-hand neighbor has not, one's own hypothesis is likely to be
  2588.  
  2589. thrown off the track, which in turn is likely  to  mislead  one's
  2590.  
  2591. left-hand  neighbor  into  a  poorer  hypothesis  during the next
  2592.  
  2593. "iteration."  This is not a very optimal procedure  for  bringing
  2594.  
  2595. about convergence of opinion.
  2596.  
  2597.  
  2598.  
  2599.  
  2600.                              - 45 -
  2601.  
  2602. IEN 189                              Bolt Beranek and Newman Inc.
  2603.                                                     Eric C. Rosen
  2604.  
  2605.  
  2606.      However,   this   situation   is   really   too  simple  and
  2607.  
  2608. straightforward to be truly analogous to routing.  To improve the
  2609.  
  2610. analogy, we must suppose that the picture is constantly changing,
  2611.  
  2612. even as the people are still forming hypotheses.  In procedure 2,
  2613.  
  2614. this change  is  accounted  for  by  simultaneously  giving  each
  2615.  
  2616. participant  a  new copy of the picture.  In procedure 1, changes
  2617.  
  2618. in the picture are accounted for as follows:  if the part of  the
  2619.  
  2620. picture  originally  given to person P has changed, then give him
  2621.  
  2622. the corresponding piece of the same picture; he can now use  this
  2623.  
  2624. piece  when  forming  his hypotheses, and should forget about the
  2625.  
  2626. previous piece.  When the procedures are thus  modified  to  take
  2627.  
  2628. account  of  changes  in  the picture, the situation described is
  2629.  
  2630. more analogous to routing, and the advantages of procedure 2 over
  2631.  
  2632. procedure 1 are even more pronounced.
  2633.  
  2634.  
  2635.      The  ARPANET's  current  routing  algorithm  is  similar  to
  2636.  
  2637. procedure  2,  since  the whole picture is made available to each
  2638.  
  2639. Switch.   The  ARPANET's  original  routing  algorithm,  and  the
  2640.  
  2641. Catenet's  current  one, are more similar to procedure 1; perhaps
  2642.  
  2643. they should be called "jigsaw puzzle"  algorithms.   All  of  the
  2644.  
  2645. problems  of  procedure  1  have their analogies in those routing
  2646.  
  2647. algorithms.   It   should   be   obvious   that   in   terms   of
  2648.  
  2649. responsiveness,   accuracy,   and   consistency,   whole  picture
  2650.  
  2651. algorithms are superior to jigsaw puzzle algorithms.  Many of the
  2652.  
  2653. problems of the  original  ARPANET  routing  algorithm,  such  as
  2654.  
  2655. looping  and  very  slow  response  to topological change, can be
  2656.  
  2657. attributed to its "jigsaw puzzle" nature.
  2658.                              - 46 -
  2659.  
  2660. IEN 189                              Bolt Beranek and Newman Inc.
  2661.                                                     Eric C. Rosen
  2662.  
  2663.  
  2664.      Even if one agrees that we ought to  avoid  "jigsaw  puzzle"
  2665.  
  2666. algorithms,  one might still claim that we need not have a "whole
  2667.  
  2668. picture" algorithm.  One might wish to argue that a given  Switch
  2669.  
  2670. needs  to know only the topology of a "region" which contains it.
  2671.  
  2672. This region would be larger than a  single  Switch,  but  smaller
  2673.  
  2674. than   the   set  of  all  Switches.   A  region  would  also  be
  2675.  
  2676. geographically contiguous, so that if two  Switches  are  in  the
  2677.  
  2678. same  region, then there is a path between them which is entirely
  2679.  
  2680. within the region.  Then traffic which does not need to  leave  a
  2681.  
  2682. region  to  get  from  its source to its destination is in effect
  2683.  
  2684. routed by a "whole picture" scheme.  Traffic which must leave the
  2685.  
  2686. region, however,  does  not  have  its  whole  route  preplanned.
  2687.  
  2688. Switches  within one region will know only how to get traffic out
  2689.  
  2690. of the region.  Other Switches in the next region will  know  how
  2691.  
  2692. to get the traffic through that region, etc.  It seems, one might
  2693.  
  2694. argue,  that this sort of regionalized routing scheme ought to be
  2695.  
  2696. possible.  After all, consider the  analogy  with  ordinary  road
  2697.  
  2698. travel.   If  one wants to travel from Boston to Los Angeles, one
  2699.  
  2700. need not preplan the entire route.  One  can  just  head  in  the
  2701.  
  2702. general  direction  of Los Angeles, with no need to know anything
  2703.  
  2704. about the roads which are close to Los Angeles until one actually
  2705.  
  2706. gets close.  A similar scheme ought to work with data.
  2707.  
  2708.  
  2709.      One problem, however, with the suggested analogy, is that it
  2710.  
  2711. does not even hold in the case of ordinary automobile travel.  If
  2712.  
  2713. one were planning an automobile trip to LA,  one  would  want  to
  2714.  
  2715.                              - 47 -
  2716.  
  2717. IEN 189                              Bolt Beranek and Newman Inc.
  2718.                                                     Eric C. Rosen
  2719.  
  2720.  
  2721. know  about  any  record-setting  blizzards  in  the midwest long
  2722.  
  2723. before one actually approached the midwest.  One  would  want  to
  2724.  
  2725. know  about the status of Mt. St. Helen's volcano long before one
  2726.  
  2727. approaches Oregon.  One might  try  not  to  be  passing  through
  2728.  
  2729. Chicago  at  rush hour.  Avoiding any of these potential disaster
  2730.  
  2731. areas could require quite a bit of advance planning.  Of  course,
  2732.  
  2733. the  amount of advance planning that one performs when travelling
  2734.  
  2735. is a matter of personality;  some  people  are  more  adventurous
  2736.  
  2737. than others, and might actually enjoy a disaster or two along the
  2738.  
  2739. way.   Users  of a data communications utility, however, whatever
  2740.  
  2741. personality traits they may have, generally  do  not  want  their
  2742.  
  2743. data to be sent on an adventure.  Rather, they want their data to
  2744.  
  2745. be   treated  with  a  conservatism  and  caution  which  require
  2746.  
  2747. considerable preplanning.
  2748.  
  2749.  
  2750.      In any case, the analogy between the road system and a  data
  2751.  
  2752. communications  network  is  very  misleading because of the very
  2753.  
  2754. rich interconnectivity of the road system.  No  matter  how  many
  2755.  
  2756. problems  an  automobile  driver  encounters as he approaches Los
  2757.  
  2758. Angeles, he still has a large number of choice points, in that he
  2759.  
  2760. can take any number of relatively short  detours  around  problem
  2761.  
  2762. areas.   In data networks, however, the connectivity is much less
  2763.  
  2764. rich, and the closer the data gets to its destination, the  fewer
  2765.  
  2766. choice   points   there   are.    With   a   sufficiently  sparse
  2767.  
  2768. connectivity, the entire path could even  be  determined  by  the
  2769.  
  2770. very first routing choice that is made, so that no detours around
  2771.  
  2772.                              - 48 -
  2773.  
  2774. IEN 189                              Bolt Beranek and Newman Inc.
  2775.                                                     Eric C. Rosen
  2776.  
  2777.  
  2778. problem areas are possible once the "trip" begins.  The situation
  2779.  
  2780. is as if someone drove from Boston to Nevada, then found that all
  2781.  
  2782. roads from Nevada to California were closed, and that he then had
  2783.  
  2784. to  drive  all  the way back to Boston to start on a new route to
  2785.  
  2786. California.  This sort  of  sub-optimality  is  inherent  to  any
  2787.  
  2788. regionalized routing scheme for data communications networks.
  2789.  
  2790.  
  2791.      In  fact, the situation could be even worse.  If Switches in
  2792.  
  2793. Boston know nothing about what is happening  between  Nevada  and
  2794.  
  2795. California,  then data for California which arrives at Nevada and
  2796.  
  2797. then is sent back from Nevada to  Boston  for  alternate  routing
  2798.  
  2799. will  just  loop  back  to  Nevada.  The data will be stuck in an
  2800.  
  2801. infinite loop, never reaching its destination.  In IEN 179, Danny
  2802.  
  2803. Cohen proposes a regional routing scheme  like  this,  apparently
  2804.  
  2805. not  realizing  that  it  suffers  from loops.  His proposal also
  2806.  
  2807. includes a form of hierarchical addressing which is closely bound
  2808.  
  2809. up with routing, so that a Switch in Boston  might  not  even  be
  2810.  
  2811. able  to  distinguish  data  for Nevada from data for California.
  2812.  
  2813. That is,  in  Cohen's  scheme,  data  for  Nevada  and  data  for
  2814.  
  2815. California  would  be  indistinguishable  at the Boston Switches;
  2816.  
  2817. all such data would appear to be addressed to Nevada.   Only  the
  2818.  
  2819. Switches  at Nevada would look further down the address hierarchy
  2820.  
  2821. to  determine  whether  the  data  needs  further  forwarding  to
  2822.  
  2823. California.   Any such scheme is hopelessly loop-prone, except in
  2824.  
  2825. a Network Structure whose connectivity is  extraordinarily  rich,
  2826.  
  2827. much more so than the Catenet's will ever be.
  2828.  
  2829.                              - 49 -
  2830.  
  2831. IEN 189                              Bolt Beranek and Newman Inc.
  2832.                                                     Eric C. Rosen
  2833.  
  2834.  
  2835.      It might seem like these objections would also have to apply
  2836.  
  2837. to the internet, since a gateway does not know all about IMPs and
  2838.  
  2839. packet  radios  and  SIMPs,  etc.,  in  the  component  networks.
  2840.  
  2841. However, the looping problem is avoided in the internet since  it
  2842.  
  2843. is  organized  in  a  strict  hierarchy  of  Network  Structures.
  2844.  
  2845. Switches in one Network Structure need not  know  anything  about
  2846.  
  2847. Switches  in  any  other  Network  Structure,  but they must have
  2848.  
  2849. complete information (Whole Picture) about Switches in  the  same
  2850.  
  2851. Network  Structure.   All  (source or intermediate) Switches in a
  2852.  
  2853. particular Network Structure always route data  to  a  Switch  in
  2854.  
  2855. that same Network Structure.  This imposition of strict hierarchy
  2856.  
  2857. prevents  looping,  as  long as the lower levels of hierarchy are
  2858.  
  2859. controlled by the higher levels.  In  the  internet,  this  means
  2860.  
  2861. that,  e.g.,  if  a  gateway hands a packet to an ARPANET IMP for
  2862.  
  2863. delivery to an ARPANET Host or to another internet  gateway,  the
  2864.  
  2865. ARPANET  is  required  to  deliver the packet as specified by the
  2866.  
  2867. gateway, or to say why not.  It must not simply pass  the  packet
  2868.  
  2869. back  to the gateway, or a loop will form.  (This sort of looping
  2870.  
  2871. has been frequently noticed between  IMPs  and  port  expanders.)
  2872.  
  2873. This  does  not imply that an ARPANET IMP cannot pass a packet to
  2874.  
  2875. an  internet  gateway  for  delivery  (through   an   "expressway
  2876.  
  2877. network")  to another ARPANET IMP, but only that once an internet
  2878.  
  2879. gateway decides to send a packet into the  ARPANET,  the  ARPANET
  2880.  
  2881. must  get that packet to the intended destination, or else inform
  2882.  
  2883. the gateway that it cannot do so.
  2884.  
  2885.  
  2886.                              - 50 -
  2887.  
  2888. IEN 189                              Bolt Beranek and Newman Inc.
  2889.                                                     Eric C. Rosen
  2890.  
  2891.  
  2892.      It is also important to note that the hierarchical levels in
  2893.  
  2894. the internet tend to be  "horizontal",  rather  than  "vertical".
  2895.  
  2896. That  is,  in  an internet spanning North America, there would be
  2897.  
  2898. internet gateways located all across the continent,  as  well  as
  2899.  
  2900. IMPs   and   packet  radios  and  PSATs  located  throughout  the
  2901.  
  2902. continent.  This is  quite  different  from  regionalization,  in
  2903.  
  2904. which  Switches  which  are  close geographically are in a common
  2905.  
  2906. region.  This distinction is very important if we  are  to  avoid
  2907.  
  2908. such problems as looping.
  2909.  
  2910.  
  2911.      Although  building  the  internet  as  a strict hierarchy of
  2912.  
  2913. Network Structures avoids  the  problems  of  looping,  there  is
  2914.  
  2915. always  some  degree  of  sub-optimality  introduced whenever the
  2916.  
  2917. topological knowledge of the Switches is restricted in  any  way,
  2918.  
  2919. even  if  the  restriction  is  just  to Switches within the same
  2920.  
  2921. Network Structure.  This is a point to which we return in section
  2922.  
  2923. 4.6,  where  we  discuss  some  of  the  basic   limitations   of
  2924.  
  2925. internetting.
  2926.  
  2927.  
  2928. 4.4  Measuring Pathway Delay
  2929.  
  2930.  
  2931.      One  of  the  most basic problems in devising a scheme to do
  2932.  
  2933. delay-oriented routing is to figure out a way  to  determine  the
  2934.  
  2935. delay.   In the ARPANET, the delay measurement algorithm is quite
  2936.  
  2937. straightforward.  When a packet arrives at an IMP, it is  stamped
  2938.  
  2939. with  its  arrival time.  When it is transmitted to the next IMP,
  2940.  
  2941. it is stamped with the time of transmission.  ARPANET packets are
  2942.  
  2943.                              - 51 -
  2944.  
  2945. IEN 189                              Bolt Beranek and Newman Inc.
  2946.                                                     Eric C. Rosen
  2947.  
  2948.  
  2949. buffered in an IMP until acknowledged  by  the  next  IMP;  if  a
  2950.  
  2951. packet  has  to  be retransmitted, its transmission time stamp is
  2952.  
  2953. overwritten with the  time  of  latest  transmission.   When  the
  2954.  
  2955. packet  is acknowledged by the receiving IMP, the arrival time is
  2956.  
  2957. subtracted from the transmission time, yielding  the  total  time
  2958.  
  2959. the  packet  spent  in the IMP.  The propagation delay (i.e., the
  2960.  
  2961. speed of light delay along the phone line from  one  IMP  to  the
  2962.  
  2963. next)  is  then  added  in to compute the total amount of time it
  2964.  
  2965. took to get the packet from one IMP to the next.  There are three
  2966.  
  2967. important aspects of this delay measurement algorithm:
  2968.  
  2969.  
  2970.      1) It is necessary to measure the amount  time  each  packet
  2971.  
  2972.         spends  within  the  Switch.   This  should be as easy to
  2973.  
  2974.         apply to a gateway as to an IMP.
  2975.  
  2976.  
  2977.      2) It is necessary to determine how long it takes  a  packet
  2978.  
  2979.         to  travel  from  one  Switch to another over the Pathway
  2980.  
  2981.         connecting them.  If the Pathway is a telephone line,  as
  2982.  
  2983.         in  the  ARPANET, this is just the propagation delay, and
  2984.  
  2985.         is a constant which can be separately measured  and  then
  2986.  
  2987.         stored  in a table.  On the other hand, if the Pathway is
  2988.  
  2989.         a packet-switching network, or even an internet, this  is
  2990.  
  2991.         much  more  difficult  to  determine, and is certainly no
  2992.  
  2993.         constant.
  2994.  
  2995.  
  2996.      3) There must be some way to account for packets that  don't
  2997.  
  2998.         get through, or don't get through immediately, due either
  2999.  
  3000.                              - 52 -
  3001.  
  3002. IEN 189                              Bolt Beranek and Newman Inc.
  3003.                                                     Eric C. Rosen
  3004.  
  3005.  
  3006.         to  errors or to congestion.  In the ARPANET, if a packet
  3007.  
  3008.         doesn't get through on its  first  IMP-IMP  transmission,
  3009.  
  3010.         and  has to be retransmitted 200 ms.  later, this 200 ms.
  3011.  
  3012.         gets added into the  packet's  delay.   This  is  a  very
  3013.  
  3014.         important feature, since it enables the delay measurement
  3015.  
  3016.         to  reflect  the effect of congestion or of a very flakey
  3017.  
  3018.         line.   But  unless   the   gateways   run   a   reliable
  3019.  
  3020.         transmission   protocol  among  themselves,  it  will  be
  3021.  
  3022.         difficult to make sure that our delay measurement  really
  3023.  
  3024.         reflects  these  factors.   If we are trying to send data
  3025.  
  3026.         through a network which is dropping most of the  data  we
  3027.  
  3028.         send  it, we want to make sure that our delay measurement
  3029.  
  3030.         routines produce a high value of delay, so  that  traffic
  3031.  
  3032.         will  tend  to  be  routed  around  this  very flakey and
  3033.  
  3034.         unreliable Pathway.  (Remember that if too  much  traffic
  3035.  
  3036.         is  dropped, some (higher) level of protocol will have to
  3037.  
  3038.         do a lot  of  retransmissions,  resulting  in  very  high
  3039.  
  3040.         delays and low throughputs.)
  3041.  
  3042.  
  3043.      The problem of how to measure delay is more tractable in the
  3044.  
  3045. case  of  AREA  ROUTING  than  in the more general internet case.
  3046.  
  3047. Recall that by "area routing," we mean a sort of internet all  of
  3048.  
  3049. whose  component  networks are basically identical (see IEN 184).
  3050.  
  3051. For example, we might at some future time decide  to  divide  the
  3052.  
  3053. ARPANET  into  areas,  connected by gateways, so that the ARPANET
  3054.  
  3055. itself turns into a hierarchical network.  If we  decide  to  use
  3056.  
  3057.                              - 53 -
  3058.  
  3059. IEN 189                              Bolt Beranek and Newman Inc.
  3060.                                                     Eric C. Rosen
  3061.  
  3062.  
  3063. the  same  routing  algorithm  at the high level (i.e., among the
  3064.  
  3065. intra-ARPANET gateways) as we use at the lower level (i.e., among
  3066.  
  3067. the individual IMPs in a  particular  area),  then  the  gateways
  3068.  
  3069. could  obtain the delay measurement information directly from the
  3070.  
  3071. routing updates sent by the individual IMPs.  That is, the  lower
  3072.  
  3073. level routing algorithm could provide information to the gateways
  3074.  
  3075. enabling  them  to  deduce their delay to other gateways.  If the
  3076.  
  3077. gateways  are   also   ordinary   IMPs,   this   information   is
  3078.  
  3079. automatically  available.   If  the gateways are hosts on the low
  3080.  
  3081. level ARPANET, a special protocol would have to be  developed  to
  3082.  
  3083. enable  the  IMPs to transmit the routing updates to the gateways
  3084.  
  3085. they are connected to (though this  wouldn't  be  much  different
  3086.  
  3087. from  the  protocol that IMPs now use to transmit routing updates
  3088.  
  3089. to their neighboring IMPs).  Of course, if we were to implement a
  3090.  
  3091. scheme like this, we would still want to make the ARPANET  appear
  3092.  
  3093. as  a single Pathway (with no intermediate Switches) at the level
  3094.  
  3095. of the Network Structure of the Catenet.  That  is,  the  Catenet
  3096.  
  3097. would  be  a  third  hierarchical layer over the two hierarchical
  3098.  
  3099. levels of the ARPANET, which would be transparent to it.
  3100.  
  3101.  
  3102.      In the more general internet case, we  cannot  rely  on  the
  3103.  
  3104. component   networks  to  provide  us  with  the  sort  of  delay
  3105.  
  3106. information we  would  like  to  use  for  the  internet  routing
  3107.  
  3108. algorithm;  the  internet  Switches will have to have some way of
  3109.  
  3110. gathering this information themselves.  In general, it  will  not
  3111.  
  3112. be possible for a Switch to measure the one-way delay from itself
  3113.  
  3114.                              - 54 -
  3115.  
  3116. IEN 189                              Bolt Beranek and Newman Inc.
  3117.                                                     Eric C. Rosen
  3118.  
  3119.  
  3120. to  its neighbors.  (We wouldn't want to rely on the radio clocks
  3121.  
  3122. that are now beginning to be deployed  at  the  gateways;   while
  3123.  
  3124. these  might  be  useful for doing measurements, we wouldn't want
  3125.  
  3126. the reliability of the  entire  operational  internet  system  to
  3127.  
  3128. depend  on  a radio broadcast over which we have no control.)  It
  3129.  
  3130. is possible, however, to measure round-trip  delay  between  each
  3131.  
  3132. pair  of  neighboring  gateways.   In  the  ARPANET, for example,
  3133.  
  3134. round-trip time is easily measured by keeping  track  of  when  a
  3135.  
  3136. message  is  sent  to  a neighboring gateway, and then noting the
  3137.  
  3138. time  when  the  RFNM  is  received.   One-way  delay  would   be
  3139.  
  3140. approximated by dividing the round-trip delay in half.
  3141.  
  3142.  
  3143.      It  is  certainly  true that the round-trip delay is not, in
  3144.  
  3145. general, exactly twice the one-way delay.  However, it seems like
  3146.  
  3147. a good enough  approximation  to  use  in  the  internet  routing
  3148.  
  3149. algorithm.    All  we  really  require  is  that  it  be  roughly
  3150.  
  3151. proportional to the one-way  delay,  in  that  both  one-way  and
  3152.  
  3153. round-trip  delays  tend  to  rise  and  fall  together, and that
  3154.  
  3155. congestion in the Pathway (component network) tends to make  both
  3156.  
  3157. increase.    Of   course,  before  designing  the  precise  delay
  3158.  
  3159. measurement scheme that we would want to use in the internet,  we
  3160.  
  3161. would  have to run a series of tests and experiments to see which
  3162.  
  3163. of several possible delay measurement  algorithms  gives  us  the
  3164.  
  3165. results  we want.  This would be similar to the extensive testing
  3166.  
  3167. of the ARPANET's delay measurement algorithm that  is  documented
  3168.  
  3169. in [4].
  3170.  
  3171.                              - 55 -
  3172.  
  3173. IEN 189                              Bolt Beranek and Newman Inc.
  3174.                                                     Eric C. Rosen
  3175.  
  3176.  
  3177.      Unfortunately,  there  are many networks which do not return
  3178.  
  3179. anything like  RFNMs  that  could  be  used  to  gauge  even  the
  3180.  
  3181. round-trip   delay.    (Many   networks,  e.g.,  SATNET  and  the
  3182.  
  3183. forthcoming wideband network, do not even tell  you  whether  you
  3184.  
  3185. are  sending traffic to a host which is down.)  So we will need a
  3186.  
  3187. gateway-gateway protocol in which gateways  receiving  data  from
  3188.  
  3189. other  (neighboring) gateways send back replies which can be used
  3190.  
  3191. for timing.
  3192.  
  3193.  
  3194.      This does not mean that every packet sent from  one  gateway
  3195.  
  3196. to  another  must  be  acknowledged  by  the  receiving  gateway.
  3197.  
  3198. Rather, we would propose something like the  following.   Suppose
  3199.  
  3200. we  have,  as  part of the gateway-gateway protocol, a bit that a
  3201.  
  3202. sending gateway can set which requires the receiving  gateway  to
  3203.  
  3204. acknowledge  the  packet.   The sending gateway can have a random
  3205.  
  3206. number generator, which lets it select packets at random in which
  3207.  
  3208. to set this bit.  These packets will have their round-trip  delay
  3209.  
  3210. measured,   and   will  constitute  a  random  (and  hopefully  a
  3211.  
  3212. representative) sample.  The packets need not be buffered in  the
  3213.  
  3214. sending  gateway  pending  acknowledgment,  but they will need to
  3215.  
  3216. have unique identifiers so  they  can  be  kept  track  of.   The
  3217.  
  3218. round-trip  delay  of  each packet is then easily determined when
  3219.  
  3220. the acknowledge is received.  (This probably implies though  that
  3221.  
  3222. gateways  will  have  to run a protocol with their neighbors when
  3223.  
  3224. they first come up in order to synchronize  sequence  numbers  to
  3225.  
  3226. use  for  identifying packets uniquely.)  There will also have to
  3227.  
  3228.                              - 56 -
  3229.  
  3230. IEN 189                              Bolt Beranek and Newman Inc.
  3231.                                                     Eric C. Rosen
  3232.  
  3233.  
  3234. be a time-out, so that a packet which is not acknowledged  within
  3235.  
  3236. a certain amount of time (perhaps dependent on the expected delay
  3237.  
  3238. of the packet, based on previous measurements) will be considered
  3239.  
  3240. to  have  been  lost  on  the Pathway between gateways (or in the
  3241.  
  3242. receiving gateway).  Packets  which  have  been  lost  should  be
  3243.  
  3244. assigned a very high delay, so that the routing algorithm assigns
  3245.  
  3246. a  very high delay to Pathways which lose a lot of packets.  This
  3247.  
  3248. will tend to cause  internet  traffic  to  avoid  such  Pathways.
  3249.  
  3250. There  doesn't  seem to be any problem in principle with a scheme
  3251.  
  3252. like this, but we will  probably  need  to  do  some  statistical
  3253.  
  3254. analysis   in   order  to  determine  the  best  random  sampling
  3255.  
  3256. technique, and to figure out how many packets we  might  need  to
  3257.  
  3258. keep  track  of during some period of time (i.e., how big a table
  3259.  
  3260. do  we  need  to  keep  track  of  packets  which  are   awaiting
  3261.  
  3262. acknowledgments?).
  3263.  
  3264.  
  3265.      This  sort  of random sampling can also be used as part of a
  3266.  
  3267. Pathway up/down protocol.  If a certain percentage of the sampled
  3268.  
  3269. packets do not get through, it might be good to assume  that  the
  3270.  
  3271. Pathway  is  not  of  sufficient  quality  to be operational, and
  3272.  
  3273. should appear to be down as far as the internet routing algorithm
  3274.  
  3275. is concerned.  In the absence of real data traffic, we could  run
  3276.  
  3277. the  up/down  protocol  with  randomly  generated  test  packets.
  3278.  
  3279. Randomly generated test traffic or randomly sampled data  traffic
  3280.  
  3281. will  give  us  a better result than periodic test traffic, since
  3282.  
  3283. measurements based on random  sampling  are  less  likely  to  be
  3284.  
  3285. correlated with other network phenomena.)
  3286.                              - 57 -
  3287.  
  3288. IEN 189                              Bolt Beranek and Newman Inc.
  3289.                                                     Eric C. Rosen
  3290.  
  3291.  
  3292.      After  we compute the delay for individual packets, we still
  3293.  
  3294. face the following two questions:
  3295.  
  3296.  
  3297.      1) The delay  which  the  routing  algorithm  assigns  to  a
  3298.  
  3299.         particular  Pathway  will  be  a function of the measured
  3300.  
  3301.         delays of the individual packets sent  on  that  Pathway.
  3302.  
  3303.         But what function should it be?
  3304.  
  3305.  
  3306.      2) Once a  Switch  determines  the  delay  on  the  Pathways
  3307.  
  3308.         emanating  from itself, it must inform all other Switches
  3309.  
  3310.         of these values  (in  routing  updates).   What  protocol
  3311.  
  3312.         should it use for disseminating these updates?
  3313.  
  3314.  
  3315. The  second  question  will  be  discussed  in  section 4.5.  The
  3316.  
  3317. remainder of this section will deal with the first question.
  3318.  
  3319.  
  3320.      After  measuring  the  delays  of  individual  packets,  the
  3321.  
  3322. individual  delays  must  be  put  through some sort of smoothing
  3323.  
  3324. function before  they  can  be  used  as  input  to  the  routing
  3325.  
  3326. algorithm.   For  example,  in  the ARPANET, we take the average,
  3327.  
  3328. every 10 seconds, of the delays experienced by  all  the  packets
  3329.  
  3330. traversing  a  particular  line in the previous 10 seconds.  This
  3331.  
  3332. average is used as input to the routing algorithm  (i.e.,  it  is
  3333.  
  3334. assigned  as  the  "length"  of  the  line when the shortest-path
  3335.  
  3336. computation is run.)  We didn't choose this smoothing function at
  3337.  
  3338. random; we chose it because it  meets  certain  desiderata.   Our
  3339.  
  3340. real purpose in measuring delay on a particular line is to enable
  3341.  
  3342.  
  3343.                              - 58 -
  3344.  
  3345. IEN 189                              Bolt Beranek and Newman Inc.
  3346.                                                     Eric C. Rosen
  3347.  
  3348.  
  3349. us  to  predict  the delay that will be seen by packets which are
  3350.  
  3351. routed over that line in the future.  Knowing the  average  delay
  3352.  
  3353. during  some  period in the past is of no value except insofar as
  3354.  
  3355. it enables us to make predictions about the future.  We found  in
  3356.  
  3357. the  ARPANET  that  for  a  given  level  of  traffic, the delays
  3358.  
  3359. experienced by the individual packets would vary quite a bit, but
  3360.  
  3361. the  delay  when  averaged  over  10  seconds  stayed  relatively
  3362.  
  3363. constant.  (It is interesting that everyone who does measurements
  3364.  
  3365. of  individual packet delay always discovers this large variance,
  3366.  
  3367. and always expresses great surprise.  This "surprising" result is
  3368.  
  3369. so often re-discovered that it should cease to  be  a  surprise.)
  3370.  
  3371. When designing the delay measurement routines for the ARPANET, we
  3372.  
  3373. investigated  some  other  smoothing functions (everyone seems to
  3374.  
  3375. have his own favorite), but none  gave  more  reasonable  results
  3376.  
  3377. than  the  simple  average  we  adopted  (which  is not a running
  3378.  
  3379. average, but rather starts  over  again  from  scratch  every  10
  3380.  
  3381. seconds).   We  also  tried  averaging  periods  of  less than 10
  3382.  
  3383. seconds, but found what we regarded as too much  variation,  even
  3384.  
  3385. when the traffic load was stable.
  3386.  
  3387.  
  3388.      Note  that if we take an average every 10 seconds, we cannot
  3389.  
  3390. react to a change of conditions in less than 10 seconds,  and  we
  3391.  
  3392. are often criticized by people who claim that it is important for
  3393.  
  3394. routing to be able to react more quickly.  Our reply, however, is
  3395.  
  3396. simply  that  it  takes  10  seconds  to  be  able  to  detect  a
  3397.  
  3398. significant change in delay.  Averages taken over smaller periods
  3399.  
  3400.                              - 59 -
  3401.  
  3402. IEN 189                              Bolt Beranek and Newman Inc.
  3403.                                                     Eric C. Rosen
  3404.  
  3405.  
  3406. show too much variation under  constant  load  to  be  useful  in
  3407.  
  3408. predicting the future delay, and hence are not useful in routing.
  3409.  
  3410. In other words, averages taken over smaller periods give spurious
  3411.  
  3412. results,  "detecting"  changes  when  in fact there are none.  We
  3413.  
  3414. want to change routing in response to  real  changes  in  network
  3415.  
  3416. conditions, but not in response to the normal range of stochastic
  3417.  
  3418. variations  in delay.  Any change in routing made on the basis of
  3419.  
  3420. a shorter-term average is at least as likely to be harmful as  to
  3421.  
  3422. be helpful.  That is, if we attempt to make routing changes based
  3423.  
  3424. on  delay  data which is not sufficiently smoothed, we are really
  3425.  
  3426. making changes at random, since we  have  left  too  much  random
  3427.  
  3428. variation  in  the  delay data.  And it seems that a good routing
  3429.  
  3430. algorithm should not make changes at random.  Of course, it would
  3431.  
  3432. be nice if we could make routing changes instantaneously based on
  3433.  
  3434. instantaneously detected changes in real network conditions,  but
  3435.  
  3436. this is not possible simply because there is no instantaneous way
  3437.  
  3438. of detecting important changes in network conditions.
  3439.  
  3440.  
  3441.      It  is  important  to realize, however, that the measurement
  3442.  
  3443. periods in the various IMPs are  not  synchronized.   Although  a
  3444.  
  3445. given  IMP generates updates no more often than every 10 seconds,
  3446.  
  3447. some IMP or  other  is  generating  an  update  about  every  500
  3448.  
  3449. milliseconds.   Mathematical analysis indicates that synchronized
  3450.  
  3451. measurement and updating periods should be  avoided,  since  they
  3452.  
  3453. give worst case performance [4].
  3454.  
  3455.  
  3456.  
  3457.                              - 60 -
  3458.  
  3459. IEN 189                              Bolt Beranek and Newman Inc.
  3460.                                                     Eric C. Rosen
  3461.  
  3462.  
  3463.      There  are  other  important  reasons for not making routing
  3464.  
  3465. changes too often.  During the lifetime of a single packet in the
  3466.  
  3467. network, we want the routing to be relatively constant,  so  that
  3468.  
  3469. the  packet can get to its destination without having to take too
  3470.  
  3471. many detours.  If we changed the routing every  millisecond,  for
  3472.  
  3473. example,  a  single  packet  in  transit though the network would
  3474.  
  3475. experience many routing changes while  in  transit,  which  would
  3476.  
  3477. probably  cause  it  to  have a longer delay than necessary.  The
  3478.  
  3479. rate at which we change routing should be  low  relative  to  the
  3480.  
  3481. average  transit  time  of a packet through the network.  Another
  3482.  
  3483. reason for not making routing changes too frequently  has  to  do
  3484.  
  3485. with  the  time  it  takes  routing  updates to travel around the
  3486.  
  3487. network.  We want to make sure that the information carried in  a
  3488.  
  3489. routing  update is not totally obsolete by the time the update is
  3490.  
  3491. received.  This implies that the  smoothing  interval  for  delay
  3492.  
  3493. measurements has to be long relative to the time it takes updates
  3494.  
  3495. to traverse the network.
  3496.  
  3497.  
  3498.      In the ARPANET, 10 seconds is much longer than the amount of
  3499.  
  3500. time  it  takes  to  get  updates around, or the amount of time a
  3501.  
  3502. packet spends in transit in the network.  We chose 10 seconds  as
  3503.  
  3504. the  averaging  interval  because  it  seemed  to be the shortest
  3505.  
  3506. period that was long enough to give us  a  reasonable  amount  of
  3507.  
  3508. smoothing.   If  we  think that in the internet, however, average
  3509.  
  3510. transit times might be measured in the tens of  seconds,  we  may
  3511.  
  3512. have  to  make our smoothing interval considerably longer than 10
  3513.  
  3514.                              - 61 -
  3515.  
  3516. IEN 189                              Bolt Beranek and Newman Inc.
  3517.                                                     Eric C. Rosen
  3518.  
  3519.  
  3520. seconds, perhaps as long as a minute.  This could seriously limit
  3521.  
  3522. the responsiveness of the routing algorithm to  changing  network
  3523.  
  3524. conditions.  However, there is nothing we can do about this.  THE
  3525.  
  3526. LONGER  IT  TAKES  PACKETS  TO  TRAVEL AROUND A NETWORK, THE LESS
  3527.  
  3528. RESPONSIVE THE ROUTING ALGORITHM OF THAT NETWORK CAN BE, for  the
  3529.  
  3530. simple  reason  that  it will just take longer to disseminate the
  3531.  
  3532. information needed for routing around the network.   The  transit
  3533.  
  3534. time  of a network places an upper limit on the responsiveness of
  3535.  
  3536. that network's routing algorithm.  Any  attempt  to  exceed  this
  3537.  
  3538. upper limit (with kludges or heuristics) will just be futile, and
  3539.  
  3540. will  result only in unstable and mysterious behavior on the part
  3541.  
  3542. of the  routing  algorithm,  reducing,  rather  than  increasing,
  3543.  
  3544. performance.
  3545.  
  3546.  
  3547.      This  is  not  to say that each Switch must generate routing
  3548.  
  3549. updates as often as every 10 seconds.  If there is no  change  in
  3550.  
  3551. delay  from  one  10-second  period  to another, then there is no
  3552.  
  3553. reason to generate an update.  Or if there is a change, but it is
  3554.  
  3555. not "significant", then there is no reason to generate an update.
  3556.  
  3557. In the ARPANET, a delay change is considered to be significant if
  3558.  
  3559. it exceeds a certain (parameterized)  threshold.   We  devised  a
  3560.  
  3561. scheme  wherein the threshold decreases with time, so that a very
  3562.  
  3563. large change is always  "significant",  but  a  small  change  is
  3564.  
  3565. significant  only  if  it  persists  for a long time.  Of course,
  3566.  
  3567. routing updates  must  be  generated  not  only  in  response  to
  3568.  
  3569. measured  changes in delay, but also if a line goes down or comes
  3570.  
  3571. up.
  3572.                              - 62 -
  3573.  
  3574. IEN 189                              Bolt Beranek and Newman Inc.
  3575.                                                     Eric C. Rosen
  3576.  
  3577.  
  3578.      We would expect that the details of  the  delay  measurement
  3579.  
  3580. and  smoothing  algorithms  will  have  to  be  different  in the
  3581.  
  3582. internet than in the ARPANET, but the principles  outlined  above
  3583.  
  3584. would  seem  to  apply in the internet environment also.  WE WILL
  3585.  
  3586. HAVE TO DO  SOME  CAREFUL  EXAMINATION  OF  THE  DELAY-THROUGHPUT
  3587.  
  3588. CHARACTERISTICS  OF EACH OF THE INDIVIDUAL NETWORKS THAT ARE USED
  3589.  
  3590. AS PATHWAYS  IN  THE  INTERNET,  and  it  may  be  that  somewhat
  3591.  
  3592. different  smoothing  algorithms  will  have  to  be used for the
  3593.  
  3594. different kinds of Pathways.  However, there doesn't seem  to  be
  3595.  
  3596. any   problem   in  principle  with  doing  this  sort  of  delay
  3597.  
  3598. measurement.
  3599.  
  3600.  
  3601.      An interesting issue arises if a given pair of  gateways  is
  3602.  
  3603. connected  by  two  or  more distinct Pathways.  For example, two
  3604.  
  3605. gateways might both be connected to ARPANET and SATNET,  so  that
  3606.  
  3607. each  can  be  reached  from  the  other  by  either of those two
  3608.  
  3609. networks.  Or, a gateway might be multi-homed on the ARPANET,  so
  3610.  
  3611. that it has two distinct access lines over which it can reach all
  3612.  
  3613. the  other  ARPANET  gateways.   In  such  cases,  do  we want to
  3614.  
  3615. separately report the delay on each of the distinct Pathways,  or
  3616.  
  3617. do  we want (at the level of routing) to represent the connection
  3618.  
  3619. between each pair of gateways as a  single,  unique  line,  whose
  3620.  
  3621. delay  is  some  function  of  the delay of the distinct Pathways
  3622.  
  3623. which really exist?  This issue is a generalization of  an  issue
  3624.  
  3625. we  have  been looking at in the context of the ARPANET, which we
  3626.  
  3627. call "parallel trunking."  In parallel trunking, a single pair of
  3628.  
  3629.                              - 63 -
  3630.  
  3631. IEN 189                              Bolt Beranek and Newman Inc.
  3632.                                                     Eric C. Rosen
  3633.  
  3634.  
  3635. IMPs is connected by two or more trunks, and the  same  issue  of
  3636.  
  3637. how  to  represent them in routing (as individual trunks, or as a
  3638.  
  3639. single, composite, trunk) arises.  When the trunks are  telephone
  3640.  
  3641. lines,  the problem is relatively easy to deal with.  Routing can
  3642.  
  3643. treat them as a single trunk, with a delay which is  the  average
  3644.  
  3645. delay  of  all packets sent over the composite trunk.  The actual
  3646.  
  3647. decision as to  which  particular  component  trunk  to  use  for
  3648.  
  3649. transmitting  a particular packet can be made locally, by the IMP
  3650.  
  3651. to which the parallel trunks are connected; there is no need  for
  3652.  
  3653. routing to play a role in this decision.
  3654.  
  3655.  
  3656.      In  the  case  where  the  parallel trunks are of comparable
  3657.  
  3658. lengths (so that there is not much difference in the  propagation
  3659.  
  3660. delays),  the  trunks  can  serve a common queue according to the
  3661.  
  3662. standard FIFO single-queue multiple-server  discipline.   If  the
  3663.  
  3664. trunks  are more heterogeneous, say one is a terrestrial line and
  3665.  
  3666. one  is  a  satellite  line,  a  somewhat  more  complex  queuing
  3667.  
  3668. discipline  is  required.   We  would  like  to  avoid  using the
  3669.  
  3670. satellite  line  until  the  load  is  such  that  if  only   the
  3671.  
  3672. terrestrial  line  were  used,  packets  would experience a delay
  3673.  
  3674. comparable to that they experience over the satellite line.  With
  3675.  
  3676. this sort of queuing discipline, packets sent  to  the  composite
  3677.  
  3678. line  experience  a  delay which is independent of the particular
  3679.  
  3680. component (land-line or satellite line) that they use.  That  is,
  3681.  
  3682. no  packet is forced to suffer the quarter-second satellite delay
  3683.  
  3684. unless the terrestrial line is so backed up that  the  delay  for
  3685.  
  3686.                              - 64 -
  3687.  
  3688. IEN 189                              Bolt Beranek and Newman Inc.
  3689.                                                     Eric C. Rosen
  3690.  
  3691.  
  3692. packets  sent  over it is comparable to the delay of packets sent
  3693.  
  3694. over the satellite line.  This sort of scheme seems to ensure the
  3695.  
  3696. best delay performance for the composite trunk.   (Actually,  the
  3697.  
  3698. mathematics  of  queuing  theory  suggests that a smaller average
  3699.  
  3700. delay for the composite trunk might be achieved  by  starting  to
  3701.  
  3702. use  the  satellite  line  sooner.   That  is, a somewhat smaller
  3703.  
  3704. average delay might be achievable if a few packets  are  given  a
  3705.  
  3706. much  longer delay by being forced over the satellite line sooner
  3707.  
  3708. than they would be with  the  queuing  discipline  we  suggested.
  3709.  
  3710. Considerations  of fairness would seem to rule that out, however;
  3711.  
  3712. how would you like it if your data got a  much  higher  delay  so
  3713.  
  3714. that  someone  else's  could  get  a  slightly  smaller  one?  In
  3715.  
  3716. addition, the queuing  discipline  we  suggested  would  seem  to
  3717.  
  3718. produce a smaller variance in delays, thereby making the measured
  3719.  
  3720. average delay on the composite trunk a better predictor of future
  3721.  
  3722. performance,  and  the  better we can predict future performance,
  3723.  
  3724. the better performance our routing algorithm can provide.)
  3725.  
  3726.  
  3727.      Basically, there is no reason for routing to be aware that a
  3728.  
  3729. particular line consists of several  parallel  components  rather
  3730.  
  3731. than a single component, because, if the argument above is right,
  3732.  
  3733. any  decision  as  to  which  component  to  use can be best made
  3734.  
  3735. locally, at the IMP from which the parallel lines emanate.   That
  3736.  
  3737. is, the global routing algorithm cannot really make effective use
  3738.  
  3739. of  information about which lines consist of parallel components,
  3740.  
  3741. and should not be burdened with information that it  cannot  use.
  3742.  
  3743.                              - 65 -
  3744.  
  3745. IEN 189                              Bolt Beranek and Newman Inc.
  3746.                                                     Eric C. Rosen
  3747.  
  3748.  
  3749. This  is  good,  since  the  SPF  algorithm  cannot really handle
  3750.  
  3751. parallel lines between a pair of Switches except by  representing
  3752.  
  3753. them  as  a single line.  (A careful study of the algorithm would
  3754.  
  3755. show that much of the algorithm's space and time efficiency would
  3756.  
  3757. be sacrificed if it had to be modified to handle parallel  trunks
  3758.  
  3759. as separate trunks.  Since this efficiency is the main thing that
  3760.  
  3761. recommends the SPF algorithm over other shortest-path algorithms,
  3762.  
  3763. we  must  be  sure that we don't destroy the effectiveness of the
  3764.  
  3765. algorithm by making poorly thought-out changes to it.)
  3766.  
  3767.      In the internet environment, however, we have a more complex
  3768.  
  3769. problem with parallel trunks than in the ARPANET.  The scheme  we
  3770.  
  3771. outlined  for using parallel trunks in the ARPANET depends on our
  3772.  
  3773. being able to know when the load on the composite trunk  is  such
  3774.  
  3775. that  exclusive  use  of  the faster component would cause delays
  3776.  
  3777. that are just as high as we get when we use the slower component.
  3778.  
  3779. This is not difficult to know if the components are  phone  lines
  3780.  
  3781. of one sort or another, since the relation between load and delay
  3782.  
  3783. is  pretty  well-defined  if  we know the length of the lines and
  3784.  
  3785. their capacity.  If the components  of  a  parallel  "trunk"  are
  3786.  
  3787. really  packet-switching  networks, however, it is much harder to
  3788.  
  3789. figure out which components are slow and which are fast,  and  it
  3790.  
  3791. is hard to figure out when the load on the fast component is such
  3792.  
  3793. that we have to start using the slow one.
  3794.  
  3795.  
  3796.      It  seems  that  by separately measuring the delays obtained
  3797.  
  3798. over the "parallel trunks" in the internet case, we ought  to  be
  3799.  
  3800.                              - 66 -
  3801.  
  3802. IEN 189                              Bolt Beranek and Newman Inc.
  3803.                                                     Eric C. Rosen
  3804.  
  3805.  
  3806. able to devise some algorithm for splitting the traffic among the
  3807.  
  3808. parallel   components   in   a   way   which   gives   reasonable
  3809.  
  3810. delay/throughput performance.   However,  we  don't  yet  have  a
  3811.  
  3812. solution  to  this  problem,  which  we  will  put  aside for the
  3813.  
  3814. present.  Whatever  scheme  we  eventually  decide  on,  however,
  3815.  
  3816. should  be  compatible with treating the parallel components as a
  3817.  
  3818. single line at the level of routing.  Of course, if we decide  to
  3819.  
  3820. have different routes for different traffic types (say, excluding
  3821.  
  3822. satellite  networks  for  interactive traffic, but using them for
  3823.  
  3824. batch traffic), then the  problem  is  eased  somewhat  since  we
  3825.  
  3826. partially  solve  the  problem a priori.  There would still be no
  3827.  
  3828. need to represent the parallel lines as separate lines.   Rather,
  3829.  
  3830. we  would  represent  them as a single line, with different delay
  3831.  
  3832. characteristics for different traffic types.
  3833.  
  3834.  
  3835. 4.5  Routing Updates
  3836.  
  3837.  
  3838. 4.5.1  Overhead
  3839.  
  3840.  
  3841.      Everyone seems to be in agreement that the overhead  due  to
  3842.  
  3843. routing  updates  should  be kept low.  At least, no one seems to
  3844.  
  3845. advocate that the overhead should be made  high.   Unfortunately,
  3846.  
  3847. "apple pie" pronouncements like this aren't much help in actually
  3848.  
  3849. designing  a  routing  scheme.  In evaluating a routing algorithm
  3850.  
  3851. from the perspective of overhead, one must understand the way  in
  3852.  
  3853. which overhead is traded off against functionality.
  3854.  
  3855.  
  3856.  
  3857.                              - 67 -
  3858.  
  3859. IEN 189                              Bolt Beranek and Newman Inc.
  3860.                                                     Eric C. Rosen
  3861.  
  3862.  
  3863.      One  advantage  of  the  SPF  routing  algorithm  is that it
  3864.  
  3865. provides a lot of handles that can be used to  control  overhead.
  3866.  
  3867. In SPF routing, a routing update generated by a particular Switch
  3868.  
  3869. identifies each neighbor of that Switch, and gives the delay over
  3870.  
  3871. the Pathway to that Switch.  Thus the size of an update generated
  3872.  
  3873. by a particular Switch is proportional to the number of neighbors
  3874.  
  3875. that  the  Switch  has,  generally a fairly small number (no more
  3876.  
  3877. than 5 in the ARPANET, and probably of a similar magnitude in the
  3878.  
  3879. internet).
  3880.  
  3881.  
  3882.      In the current Catenet routing algorithm, the  size  of  the
  3883.  
  3884. routing updates is a function of the total number of gateways (or
  3885.  
  3886. equivalently,  of  the  total  number  of  component networks), a
  3887.  
  3888. number which can increase by a great deal over the years.  In the
  3889.  
  3890. SPF algorithm, the size of the  updates  is  a  function  of  the
  3891.  
  3892. connectivity  of  the internet, which could not increase anywhere
  3893.  
  3894. near as much or as rapidly as the number of  gateways.   (In  the
  3895.  
  3896. two years that SPF has been running in the ARPANET, the number of
  3897.  
  3898. IMPs  has  increased  by  a  third, with another similar increase
  3899.  
  3900. expected in the next several months, while the connectivity,  and
  3901.  
  3902. hence the average update size, has remained relatively constant.)
  3903.  
  3904. This is important, since we wouldn't want to get ourselves into a
  3905.  
  3906. situation where the update size eventually becomes so big (due to
  3907.  
  3908. network  growth)  that we can no longer fit a whole update into a
  3909.  
  3910. single packet (a situation that was imminent during the last days
  3911.  
  3912. of the original ARPANET routing algorithm.)  In the internet, the
  3913.  
  3914.                              - 68 -
  3915.  
  3916. IEN 189                              Bolt Beranek and Newman Inc.
  3917.                                                     Eric C. Rosen
  3918.  
  3919.  
  3920. maximum size of an update packet is constrained by the  component
  3921.  
  3922. network  which  has  the  smallest maximum packet size.  It seems
  3923.  
  3924. likely that any component network whose packets are large  enough
  3925.  
  3926. to  carry  the enormous TCP and IP headers should have no trouble
  3927.  
  3928. carrying the routing updates.
  3929.  
  3930.  
  3931.      The amount of overhead due to routing updates is not only  a
  3932.  
  3933. function  of  the  update  size,  but  also  of the rate at which
  3934.  
  3935. updates are generated.  In the ARPANET, since each  IMP  averages
  3936.  
  3937. the  delay  on  its  outgoing  lines over a period of 10 seconds,
  3938.  
  3939. changes in delay on the lines emanating  from  a  particular  IMP
  3940.  
  3941. cannot  occur,  by  definition,  more  often  than  once every 10
  3942.  
  3943. seconds.  In  addition  to  generating  updates  when  the  delay
  3944.  
  3945. changes,  updates  must  also  be generated when lines go down or
  3946.  
  3947. come up.  In the ARPANET, a line which goes down cannot  come  up
  3948.  
  3949. for at least 60 seconds.  So in an IMP with 5 neighbors, the most
  3950.  
  3951. updates  that  can be generated in a minute is 11 (due to each of
  3952.  
  3953. the lines either going down or coming up during the  minute,  for
  3954.  
  3955. 5,  and a delay change every 10 seconds, for 6).  It is important
  3956.  
  3957. to note that this is the maximum rate at  which  updates  can  be
  3958.  
  3959. generated,  not  the  average rate.  Since IMPs need not generate
  3960.  
  3961. routing updates unless they have a "significant change" in  delay
  3962.  
  3963. to  report,  the average rate can be much lower.  In the ARPANET,
  3964.  
  3965. the average rate for generating updates is actually about one per
  3966.  
  3967. IMP per 40 seconds.  This is a very limited amount  of  overhead.
  3968.  
  3969. Of  course,  the  overhead  will  increase  as the number of IMPs
  3970.  
  3971.                              - 69 -
  3972.  
  3973. IEN 189                              Bolt Beranek and Newman Inc.
  3974.                                                     Eric C. Rosen
  3975.  
  3976.  
  3977. increases, because there are just more IMPs to generate  updates.
  3978.  
  3979. However,  the  amount  of  overhead  is always under our control,
  3980.  
  3981. since  we  can  always  alter  the  averaging  interval,  or  the
  3982.  
  3983. threshold  of significant change in delay, to force updates to be
  3984.  
  3985. generated less frequently and thereby to reduce overhead.   These
  3986.  
  3987. same principles apply to the internet also, so it doesn't seem as
  3988.  
  3989. if we will be generating enormous amounts of routing overhead.
  3990.  
  3991.  
  3992.      There  are  some things we might want to do which would tend
  3993.  
  3994. to make the routing updates longer than so  far  indicated.   For
  3995.  
  3996. example,  if  we  defined  several  priorities  of traffic at the
  3997.  
  3998. internet  level,  and  mapped  these  priorities   to   different
  3999.  
  4000. priorities of some particular component network, we might want to
  4001.  
  4002. separately  measure  the  delay  across  that  network  for  each
  4003.  
  4004. priority.  We might also want to compute a separate set of routes
  4005.  
  4006. across the internet for each priority.  If we adopted  some  such
  4007.  
  4008. scheme,  we would need to report in each update several different
  4009.  
  4010. delays for each Pathway,  indexed  by  priority.   These  indexed
  4011.  
  4012. delays  could  then be used for computing a set of routing tables
  4013.  
  4014. indexed by priority, allowing traffic of different priorities  to
  4015.  
  4016. use  different  routes.   Of  course,  this  would  lengthen  the
  4017.  
  4018. updates, adding more  overhead.   Part  of  the  decision  as  to
  4019.  
  4020. whether to adopt such a scheme would involve an evaluation of the
  4021.  
  4022. trade-offs  between  the  cost of this increased overhead and the
  4023.  
  4024. benefit of the expected improvement in performance.  The  issues,
  4025.  
  4026. however,  are clear, and there are enough handles controlling the
  4027.  
  4028.                              - 70 -
  4029.  
  4030. IEN 189                              Bolt Beranek and Newman Inc.
  4031.                                                     Eric C. Rosen
  4032.  
  4033.  
  4034. amount of overhead so that we can put into effect any decision we
  4035.  
  4036. make.
  4037.  
  4038.  
  4039.      It is important to understand that  the  number  of  routing
  4040.  
  4041. updates  generated by a single internet event (such as the outage
  4042.  
  4043. of a gateway access line) is much less with SPF routing than with
  4044.  
  4045. the current Catenet routing algorithm.  In SPF routing,  a  given
  4046.  
  4047. event  causes  the  generation  of ONE routing update, which must
  4048.  
  4049. then be sent to every gateway (thereby  giving  each  gateway  an
  4050.  
  4051. up-to-date  copy  of the "whole picture").  On the other hand, in
  4052.  
  4053. the current Catenet routing algorithm, a  single  internet  event
  4054.  
  4055. causes  a  flurry  of  updates,  as all gateways send and receive
  4056.  
  4057. updates repeatedly to and from each neighbor, until  the  routing
  4058.  
  4059. tables  stabilize  and  the  process settles down.  This can take
  4060.  
  4061. quite a long time and quite a few updates,  particularly  if  the
  4062.  
  4063. number of gateways is large.
  4064.  
  4065.  
  4066.      In addition, in an internet with a large number of gateways,
  4067.  
  4068. the  updates  for  the current Catenet routing algorithm are very
  4069.  
  4070. much larger than the SPF updates would be.  It is clear that  the
  4071.  
  4072. routing overhead due to a single network event would be much less
  4073.  
  4074. with  SPF  than  it  currently  is.   However, if we plan to send
  4075.  
  4076. routing updates when delay changes, as opposed  to  just  when  a
  4077.  
  4078. gateway  access  line comes up or goes down (as at present), then
  4079.  
  4080. we will be generating updates in response to more network events.
  4081.  
  4082. This tends to drive the overhead up.  Again, the  trade-offs  are
  4083.  
  4084.  
  4085.                              - 71 -
  4086.  
  4087. IEN 189                              Bolt Beranek and Newman Inc.
  4088.                                                     Eric C. Rosen
  4089.  
  4090.  
  4091. relatively  clear here;  the amount of overhead simply trades off
  4092.  
  4093. against the responsiveness of the routing algorithm  to  changing
  4094.  
  4095. network  conditions.   The  decision  as  to  how  to  draw  this
  4096.  
  4097. trade-off can be made as a policy decision, and can be changed if
  4098.  
  4099. performance considerations warrant it.  The  situation  with  the
  4100.  
  4101. current  Catenet  routing algorithm is quite different, since the
  4102.  
  4103. amount of overhead that it  generates  is  almost  impossible  to
  4104.  
  4105. compute.   In  that  algorithm,  the  number  of  routing updates
  4106.  
  4107. generated in response to a particular event depends on the  order
  4108.  
  4109. in  which  the  updates are processed by the individual gateways,
  4110.  
  4111. something that is essentially random and hence hard  to  predict.
  4112.  
  4113. The SPF algorithm has no such dependency.
  4114.  
  4115.  
  4116.  
  4117.      The  need for hysteresis in the Pathway up/down protocol run
  4118.  
  4119. between  neighboring   gateways   is   worth   emphasizing.    If
  4120.  
  4121. connections  between  neighboring gateways are allowed to come up
  4122.  
  4123. and go down with great frequency, causing a  constant  flurry  of
  4124.  
  4125. routing  changes,  packets  in  transit will bounce around a lot.
  4126.  
  4127. Putting a limit on the frequency  with  which  a  gateway-gateway
  4128.  
  4129. connection  can  change  state  is  needed  not only to limit the
  4130.  
  4131. amount of overhead generated, but also to give some stability  to
  4132.  
  4133. the  routing.   It  is  worth  noting  that the ARPANET, although
  4134.  
  4135. providing hysteresis in its own line up/down protocol,  does  not
  4136.  
  4137. provide any hysteresis in host up/downs.  Hosts are allowed to go
  4138.  
  4139. down  and  come  up repeatedly many times a minute, and this does
  4140.  
  4141.  
  4142.                              - 72 -
  4143.  
  4144. IEN 189                              Bolt Beranek and Newman Inc.
  4145.                                                     Eric C. Rosen
  4146.  
  4147.  
  4148. result  in  problems,   causing   congestion   and   instability.
  4149.  
  4150. Hysteresis in the gateway's Pathway up/down protocol will have to
  4151.  
  4152. be ensured explicitly; we cannot rely on the ordinary host access
  4153.  
  4154. protocol  of  the component networks to do the right thing.  That
  4155.  
  4156. is, if a network interface goes down, we must keep it down for  a
  4157.  
  4158. period  of  time, even if the network itself allows the interface
  4159.  
  4160. to come back up immediately.
  4161.  
  4162.  
  4163. 4.5.2  Protocol
  4164.  
  4165.  
  4166.      We turn now to the problem of how to disseminate the routing
  4167.  
  4168. updates around the Network Structure.  Remember that the  updates
  4169.  
  4170. generated  by  a particular Switch will contain information about
  4171.  
  4172. the delays to the  neighbors  of  that  Switch.   When  a  Switch
  4173.  
  4174. generates  an  update, it must broadcast that update to ALL other
  4175.  
  4176. Switches.  As a result, every single Switch will know the  values
  4177.  
  4178. of  delay  between every single pair of neighboring Switches.  It
  4179.  
  4180. is then straightforward to have each Switch run  a  shortest-path
  4181.  
  4182. algorithm  which determines the shortest path from itself to each
  4183.  
  4184. other Switch.  The basic idea is for  each  Switch  to  know  the
  4185.  
  4186. entire  topology  of  the Network Structure, so that the shortest
  4187.  
  4188. paths can be determined by a localized shortest  path  algorithm,
  4189.  
  4190. with  no need for a distributed computation.  In the ARPANET, the
  4191.  
  4192. IMPs do not start out with any knowledge of the  topology.   They
  4193.  
  4194. determine  who  their own neighbors are, and they reconstruct the
  4195.  
  4196. rest of the topology from the routing updates they receive.
  4197.  
  4198.  
  4199.                              - 73 -
  4200.  
  4201. IEN 189                              Bolt Beranek and Newman Inc.
  4202.                                                     Eric C. Rosen
  4203.  
  4204.  
  4205.      It is possible to prove that, as long as all  Switches  have
  4206.  
  4207. the same information about the topology and the delays, then they
  4208.  
  4209. will  produce  routes  which are consistent and loop-free.  (That
  4210.  
  4211. is, the situation in which Switch A thinks its best path to B  is
  4212.  
  4213. through  C,  and  C  thinks  its best path to B is through A, can
  4214.  
  4215. never arise.)  However, if some routing updates somehow get  lost
  4216.  
  4217. before  being  received  by every single Switch, then there is no
  4218.  
  4219. guarantee of consistent loop-free routing.  In fact,  if  routing
  4220.  
  4221. updates  get  lost,  so  that  different  Switches have different
  4222.  
  4223. information about the topology or the  delays,  we  would  expect
  4224.  
  4225. long-term  routing  loops  to  arise, possibly making the Network
  4226.  
  4227. Structure useless for some period of time.  So the protocol  used
  4228.  
  4229. to  broadcast  the  routing  updates  needs  the highest possible
  4230.  
  4231. reliability.  Of course, it will always take some amount of  time
  4232.  
  4233. for  an  update to be broadcast around the Network Structure, and
  4234.  
  4235. during that time, some Switches will have received  it  and  some
  4236.  
  4237. not.   This  means  there  will always be a transient period when
  4238.  
  4239. routing loops  might  arise.   So  another  aim  of  the  routing
  4240.  
  4241. updating  protocol must be to keep this transient period as short
  4242.  
  4243. as possible.  In the ARPANET, we have an updating protocol  which
  4244.  
  4245. seems   to   provide  these  characteristics  of  extremely  high
  4246.  
  4247. reliability and low delay.  Some of its aspects adapt readily  to
  4248.  
  4249. the  internet,  but  others are more difficult to adapt.  In what
  4250.  
  4251. follows,  we  first  describe  the  ARPANET's  routing   updating
  4252.  
  4253. protocol, and then discuss its applicability to the internet.
  4254.  
  4255.  
  4256.                              - 74 -
  4257.  
  4258. IEN 189                              Bolt Beranek and Newman Inc.
  4259.                                                     Eric C. Rosen
  4260.  
  4261.  
  4262.      Suppose  IMP  A  has  to  generate  a routing update, either
  4263.  
  4264. because of some "significant" change in the  measured  delay,  or
  4265.  
  4266. because of a line up/down state change.  Each update generated by
  4267.  
  4268. A  has  a sequence number, which is incremented by 1 for each new
  4269.  
  4270. update.  (In the ARPANET, we use 6-bit  sequence  numbers,  which
  4271.  
  4272. wrap around after 63.)  After creating the update, IMP A sends it
  4273.  
  4274. to  each of its neighbors.  The update is transmitted as a packet
  4275.  
  4276. of extremely high priority;  only the packets used  in  the  line
  4277.  
  4278. up/down  protocol  are  of  higher priority.  We use the notation
  4279.  
  4280. "A(n)" to refer to the update generated by IMP  A  with  sequence
  4281.  
  4282. number  n.   Now let's look at what happens when a copy of update
  4283.  
  4284. A(n) is received by an IMP B.   (IMP  B  is  intended  to  be  an
  4285.  
  4286. arbitrary  IMP  somewhere in the network, possibly identical to A
  4287.  
  4288. or to one of A's neighbors, but not necessarily so.)   If  B  has
  4289.  
  4290. never  received  an  update  from A before, it "accepts" A(n), by
  4291.  
  4292. which we mean that it (a) remembers in its tables that  the  most
  4293.  
  4294. recent  update  it  has  seen  from A is A(n) (i.e., the sequence
  4295.  
  4296. number n, the list of neighbors of A, and the delays  from  A  to
  4297.  
  4298. each  neighbor are stored in B's tables), (b) it forwards A(n) to
  4299.  
  4300. each of its neighbors,  including  the  one  from  which  it  was
  4301.  
  4302. received,  and  (c) the SPF algorithm is run to produce a new set
  4303.  
  4304. of paths, given the new delay and topology information  contained
  4305.  
  4306. in  A(n).   If  B  has  received  an  update  from  A  before, it
  4307.  
  4308. determines whether A(n) is more recent than  the  update  it  has
  4309.  
  4310. already  seen,  and  "accepts"  it  (as  just  defined) if it is;
  4311.  
  4312.  
  4313.                              - 75 -
  4314.  
  4315. IEN 189                              Bolt Beranek and Newman Inc.
  4316.                                                     Eric C. Rosen
  4317.  
  4318.  
  4319. otherwise it simply  discards  A(n).   The  determination  as  to
  4320.  
  4321. whether  A(n) is more recent than some previously received update
  4322.  
  4323. A(m) is made by a sequence number comparison (which,  of  course,
  4324.  
  4325. must account for the fact that sequence numbers can wrap around);
  4326.  
  4327. A(n) is not considered to be more recent than itself.
  4328.  
  4329.  
  4330.      If  one  thinks a bit about this inductive definition of the
  4331.  
  4332. protocol, one sees that each IMP  in  the  network  will  receive
  4333.  
  4334. every  update  which is generated by any IMP, and further that it
  4335.  
  4336. will generally receive a copy of  each  update  on  each  of  its
  4337.  
  4338. lines.   This means of broadcasting an update from one IMP to all
  4339.  
  4340. other IMPs is called "flooding."  It is  highly  reliable,  since
  4341.  
  4342. updates  cannot  be  lost  in  the  network due to IMP crashes or
  4343.  
  4344. partitions.  If there is  any  path  at  all  between  two  IMPs,
  4345.  
  4346. flooding  will get the update from one to the other.  (Of course,
  4347.  
  4348. if there is no path at all from A to B, then updates  cannot  get
  4349.  
  4350. from one IMP to the other.  However, this is not a problem, since
  4351.  
  4352. if  traffic  from  A  cannot even reach B, then it cannot use B's
  4353.  
  4354. outgoing lines, so there is no need for A to know the  delays  of
  4355.  
  4356. B's  outgoing  lines  in  this  case.   In  saying  that flooding
  4357.  
  4358. prevents updates from getting lost due to network partitions,  we
  4359.  
  4360. are  thinking of the case where an update is in transit from A to
  4361.  
  4362. B when a partition forms, such that A  and  B  are  in  the  same
  4363.  
  4364. partition  segment,  but  the update is in a segment which is now
  4365.  
  4366. isolated from either A or B.  Flooding ensures delivery  in  this
  4367.  
  4368. situation.)
  4369.  
  4370.                              - 76 -
  4371.  
  4372. IEN 189                              Bolt Beranek and Newman Inc.
  4373.                                                     Eric C. Rosen
  4374.  
  4375.  
  4376.      Flooding  also  ensures  that  an  update  travels  over the
  4377.  
  4378. shortest (in terms of delay)  possible  path.   Basically,  every
  4379.  
  4380. possible  path  is  attempted,  so  the  update  necessarily gets
  4381.  
  4382. through first on the shortest path, by definition.  In  addition,
  4383.  
  4384. this means of transmitting routing updates does not depend in any
  4385.  
  4386. way  on  the routing algorithm itself.  Since routing updates are
  4387.  
  4388. sent out all lines, there is no  need  to  look  in  the  routing
  4389.  
  4390. tables   to  decide  where  to  send  the  routing  update.   The
  4391.  
  4392. transmission of routing updates is independent of routing,  which
  4393.  
  4394. eliminates   the  possibility  of  certain  sorts  of  disastrous
  4395.  
  4396. negative feedback.
  4397.  
  4398.  
  4399.      One might think that a protocol which sends a copy of  every
  4400.  
  4401. update on every line creates a tremendous amount of overhead.  In
  4402.  
  4403. the ARPANET, however, the average update packet size is 176 bits,
  4404.  
  4405. and  the  average  number  of  updates sent on each line (in each
  4406.  
  4407. direction) is less than 2 per second, for an average overhead  of
  4408.  
  4409. less  than 1% of a 50 kbps line.  And this is with almost 75 IMPs
  4410.  
  4411. generating updates.
  4412.  
  4413.  
  4414.      Of course, a protocol like flooding is only as  reliable  as
  4415.  
  4416. are  the  individual  point-to-point  transmissions  from  IMP to
  4417.  
  4418. neighboring IMP.  We ensure reliability  at  this  level  with  a
  4419.  
  4420. positive  acknowledgment  retransmission  scheme.  Note, however,
  4421.  
  4422. that no explicit acknowledgments are required.  If  IMP  X  sends
  4423.  
  4424. update  A(n)  to neighboring IMP Y, and then X receives from Y an
  4425.  
  4426.  
  4427.                              - 77 -
  4428.  
  4429. IEN 189                              Bolt Beranek and Newman Inc.
  4430.                                                     Eric C. Rosen
  4431.  
  4432.  
  4433. update A(m), where A(m)  is  at  least  as  recent  as  A(n),  we
  4434.  
  4435. consider that Y has acknowledged X's transmission of A(n).  Since
  4436.  
  4437. an  IMP  which  accepts  an  update  sends  it  to all neighbors,
  4438.  
  4439. including the one from which it was received, in  general,  if  X
  4440.  
  4441. sends  A(n)  to Y, Y will send A(n) back to X, thereby furnishing
  4442.  
  4443. the acknowledgment.  We say "in general", since there is a little
  4444.  
  4445. further twist.  As another  reliability  feature,  we  make  each
  4446.  
  4447. update  carry  complete  information,  and forbid the carrying of
  4448.  
  4449. incremental information in updates.   That  is,  each  and  every
  4450.  
  4451. update  generated by an IMP A contains all the latest information
  4452.  
  4453. about A's neighbors and its delay to them, so  that  each  update
  4454.  
  4455. can  be  fully  understood  in  isolation from any that have gone
  4456.  
  4457. before.  This  means  that  if  update  A(n+1)  is  received  and
  4458.  
  4459. processed   by  some  IMP  B,  then  the  prior  update  A(n)  is
  4460.  
  4461. superfluous and can just be discarded by B.   In  particular,  if
  4462.  
  4463. IMP X sends A(n) to neighboring IMP Y while at the same time Y is
  4464.  
  4465. sending  A(n+1)  to X, then X can interpret the receipt of A(n+1)
  4466.  
  4467. from Y as an acknowledgment of the receipt of A(n); that is, X no
  4468.  
  4469. longer has to worry about retransmitting A(n), since that  update
  4470.  
  4471. is  no  longer needed by Y.  If no "acknowledgment" for an update
  4472.  
  4473. is received from a particular neighbor within a specified  amount
  4474.  
  4475. of  time,  the  update  is  retransmitted.  Of course, it must be
  4476.  
  4477. specially marked as a retransmission, so that the neighboring IMP
  4478.  
  4479. will always "acknowledge" it (by echoing it back),  even  if  the
  4480.  
  4481. neighbor  has  seen it before.  This is needed to handle the case
  4482.  
  4483.  
  4484.                              - 78 -
  4485.  
  4486. IEN 189                              Bolt Beranek and Newman Inc.
  4487.                                                     Eric C. Rosen
  4488.  
  4489.  
  4490. where  the  update  got  through  the   first   time,   but   the
  4491.  
  4492. acknowledgment  did  not.   It  should also be noted that all the
  4493.  
  4494. information in a routing update must  be  stored  in  each  IMP's
  4495.  
  4496. tables  in  order to run the SPF computation.  This means that if
  4497.  
  4498. it is necessary to retransmit an update to a particular neighbor,
  4499.  
  4500. the update packet can be re-created from the tables;  it  is  not
  4501.  
  4502. necessary   to   buffer   the   original  update  packet  pending
  4503.  
  4504. acknowledgment.
  4505.  
  4506.  
  4507.      We must remember that if congestion forms in  some  part  of
  4508.  
  4509. the  network,  we want routing to be able to adapt in a way which
  4510.  
  4511. can route traffic around the congestion.  For this  to  have  any
  4512.  
  4513. hope  of  working,  we  must be sure that ROUTING UPDATES WILL BE
  4514.  
  4515. ABLE TO FLOW FREELY, EVEN IF CONGESTION IS BLOCKING THE  FLOW  OF
  4516.  
  4517. DATA  PACKETS.  Therefore, routing updates in the ARPANET are not
  4518.  
  4519. sent by the ordinary IMP-IMP  protocol,  which  provides  only  8
  4520.  
  4521. logical   channels  between  a  pair  of  IMPs.   That  would  be
  4522.  
  4523. disastrous, since congestion often causes all 8 logical  channels
  4524.  
  4525. to fill up and remain filled for some time, blocking further data
  4526.  
  4527. transmission  between  the IMPs.  Transmission of routing updates
  4528.  
  4529. must be done in a way  that  is  not  subject  to  this  sort  of
  4530.  
  4531. protocol  blocking  during  periods of congestion.  (This sort of
  4532.  
  4533. "out-of-band" signalling was quite easy to put into the  ARPANET.
  4534.  
  4535. However,  it  is worth noting that such protocols as HDLC make no
  4536.  
  4537. explicit provision for out-of-band signalling, and it seems  that
  4538.  
  4539. many  networks  are being built in which the routing updates will
  4540.  
  4541.                              - 79 -
  4542.  
  4543. IEN 189                              Bolt Beranek and Newman Inc.
  4544.                                                     Eric C. Rosen
  4545.  
  4546.  
  4547. not be able to flow when the network gets  congested.   Designers
  4548.  
  4549. of  such  networks  will  no  doubt  be quite surprised when they
  4550.  
  4551. discover  what  is  inevitable,  namely    that   their   routing
  4552.  
  4553. algorithms  break down completely in the face of congestion.)  We
  4554.  
  4555. also want to be sure that we have enough  buffers  available  for
  4556.  
  4557. holding routing updates, and that we process them at a relatively
  4558.  
  4559. high CPU priority.
  4560.  
  4561.  
  4562.      There  is one more twist to the updating protocol, having to
  4563.  
  4564. do with network partitions.  A network partition is  a  situation
  4565.  
  4566. in which there are two IMPs in the network between which there is
  4567.  
  4568. no  communications path.  Network partitions,  in this sense, may
  4569.  
  4570. be as simple as the case in which some IMP is down (an IMP  which
  4571.  
  4572. is  down  has  no  communications  path  to any other IMP), or as
  4573.  
  4574. complex as  the  case  in  which  four  line  outages  result  in
  4575.  
  4576. partitioning  the  network  into  two  groups of 40 IMPs.  When a
  4577.  
  4578. partition ends, we have  to  be  sure  that  the  two  (or  more)
  4579.  
  4580. segments do not get logically rejoined until routing updates from
  4581.  
  4582. all  IMPs  in  each  segment  get  to  all  the IMPs in the other
  4583.  
  4584. segments.  That is, data packets must  not  be  routed  from  one
  4585.  
  4586. segment  to  the  other  until  all  IMPs  in  each  segment have
  4587.  
  4588. exchanged routing updates with all IMPs in  the  other  segments.
  4589.  
  4590. Otherwise, routing loops are sure to form.  We must also remember
  4591.  
  4592. that the sequence numbers of IMPs in one segment may have wrapped
  4593.  
  4594. around  several  times  during  the  duration  of  the partition.
  4595.  
  4596. Therefore we must ensure that IMPs in one segment  do  not  apply
  4597.  
  4598.                              - 80 -
  4599.  
  4600. IEN 189                              Bolt Beranek and Newman Inc.
  4601.                                                     Eric C. Rosen
  4602.  
  4603.  
  4604. the  usual sequence number comparison to updates from IMPs in the
  4605.  
  4606. other segment.
  4607.  
  4608.  
  4609.      We have dealt with these problems by  adding  the  following
  4610.  
  4611. three time-outs to the updating protocol:
  4612.  
  4613.  
  4614.      1) MAXIMUM INTERVAL BETWEEN UPDATES: Every IMP  is  required
  4615.  
  4616.         to  generate at least one update every minute, whether or
  4617.  
  4618.         not there has been any change in delay or line state.
  4619.  
  4620.  
  4621.      2) MAXIMUM UPDATE LIFETIME: If an IMP B has not received any
  4622.  
  4623.         updates generated by IMP A for a  whole  minute,  then  B
  4624.  
  4625.         will  "accept" the next update it sees that was generated
  4626.  
  4627.         by A, regardless of the sequence number.
  4628.  
  4629.  
  4630.      3) WAITING PERIOD: When a line is ready to come  up,  it  is
  4631.  
  4632.         held in a special "waiting" state for a minute.  While in
  4633.  
  4634.         the  waiting  state,  no  data  can  be sent on the line.
  4635.  
  4636.         However, routing updates are passed over the line in  the
  4637.  
  4638.         normal way, as if the line were up.
  4639.  
  4640.  
  4641.      Since  the  ending  of a partition is always coincident with
  4642.  
  4643. some line's  coming  up,  these  three  features  ensure  that  a
  4644.  
  4645. partition cannot end until a full exchange of routing information
  4646.  
  4647. takes  place.   They also ensure (given the facts that there is a
  4648.  
  4649. 6-bit sequence number space and that IMPs can generate at most 11
  4650.  
  4651. updates per minute) that sequence numbers  of  updates  generated
  4652.  
  4653. after  the  end  of  the partition are not compared with sequence
  4654.  
  4655. numbers of updates generated before the partition occurred.
  4656.                              - 81 -
  4657.  
  4658. IEN 189                              Bolt Beranek and Newman Inc.
  4659.                                                     Eric C. Rosen
  4660.  
  4661.  
  4662.      The general idea of flooding the updates seems as  important
  4663.  
  4664. in the internet as in the ARPANET.  In general, we can expect the
  4665.  
  4666. internet  to  be  subject  to  many  more  mysterious outages and
  4667.  
  4668. disturbances than is the ARPANET, and the reliability  and  speed
  4669.  
  4670. of flooding will be essential if an internet routing algorithm is
  4671.  
  4672. to  have  any  hope  of  working.   The  issue of overhead may be
  4673.  
  4674. somewhat worrisome, though.  If an IMP has  to  send  each  of  4
  4675.  
  4676. neighbors a copy of each update, it is just a matter of sending a
  4677.  
  4678. copy of a small packet on each of 4 wideband lines.  On the other
  4679.  
  4680. hand,  if  a  gateway  has  to send a copy of each update to each
  4681.  
  4682. neighbor, this may mean that it has  to  send  4  copies  into  a
  4683.  
  4684. single  network,  over  a  single network interface.  This may be
  4685.  
  4686. somewhat more disruptive.  Of course, this problem only exists on
  4687.  
  4688. networks which do not have group addressing.  If a network allows
  4689.  
  4690. the gateways to be addressed as a group, then each gateway  needs
  4691.  
  4692. only  to  place one copy of each update into the network, and the
  4693.  
  4694. network will take responsibility for delivering it to each  other
  4695.  
  4696. gateway.  (This might result in each gateway's receiving back its
  4697.  
  4698. own  copy  of  the update, since the sending gateway will also be
  4699.  
  4700. part of the group, but that  is  no  problem.   As  long  as  the
  4701.  
  4702. gateway can identify itself as the transmitter, it can just throw
  4703.  
  4704. away  any  updates which it transmitted to itself.)  This idea of
  4705.  
  4706. sending the updates to all neighbors on a particular  network  by
  4707.  
  4708. using  group  addressing  fits  in well with an idea expounded in
  4709.  
  4710. section 4.1, namely the idea that a network  should  be  able  to
  4711.  
  4712.  
  4713.                              - 82 -
  4714.  
  4715. IEN 189                              Bolt Beranek and Newman Inc.
  4716.                                                     Eric C. Rosen
  4717.  
  4718.  
  4719. tell which of its hosts are gateways, and should inform the other
  4720.  
  4721. gateways  when  a new gateway come up.  This same mechanism could
  4722.  
  4723. be used by the network to augment its group addressing mechanism,
  4724.  
  4725. to  allow  the  group  definition  to  change   dynamically   and
  4726.  
  4727. automatically  as  the  set  of gateways connected to it changes.
  4728.  
  4729. Unfortunately, few networks seem to have group addressing.   Even
  4730.  
  4731. SATNET has only a primitive group addressing feature, although it
  4732.  
  4733. seems  odd  to  have  a  broadcast  network  without  full  group
  4734.  
  4735. addressing capabilities.  (Group addressing is much more  complex
  4736.  
  4737. on  a  distributed  network  like  ARPANET  than  on  a broadcast
  4738.  
  4739. network.)  Perhaps as further internet development proceeds, more
  4740.  
  4741. of the component networks will add group addressing, in order  to
  4742.  
  4743. make their use of the internet more robust and efficient.
  4744.  
  4745.  
  4746.      Retransmission      of      routing     updates     on     a
  4747.  
  4748. gateway-to-neighboring-gateway basis, based on the scheme in  the
  4749.  
  4750. ARPANET,  also seems to offer no problems in principle.  However,
  4751.  
  4752. the retransmission time-outs might have to be  carefully  chosen,
  4753.  
  4754. and  tuned  to  the characteristics of the network connecting the
  4755.  
  4756. sending and receiving gateways.  The retransmission time  has  to
  4757.  
  4758. be  somewhat  longer  than  the  average round-trip delay in that
  4759.  
  4760. network, and this may vary considerably from network to  network.
  4761.  
  4762. In  principle,  however,  this  is no different from the ARPANET,
  4763.  
  4764. where  the  retransmission  timers  for  routing   updates   vary
  4765.  
  4766. according  to  the propagation delay of the phone line connecting
  4767.  
  4768. two IMPs.
  4769.  
  4770.                              - 83 -
  4771.  
  4772. IEN 189                              Bolt Beranek and Newman Inc.
  4773.                                                     Eric C. Rosen
  4774.  
  4775.  
  4776.      There is a bit of a subtle problem that we discovered in the
  4777.  
  4778. ARPANET, having to do  with  the  scheme  of  using  the  updates
  4779.  
  4780. themselves   as   acknowledgments.   Suppose  Switch  A  has  two
  4781.  
  4782. neighbors, B and C.  A receives a copy of update u  from  B,  and
  4783.  
  4784. queues  it  for  transmission to C.  However, while u is still on
  4785.  
  4786. the queue to C, A receives a copy of u from C.  If A had  already
  4787.  
  4788. sent  u  to  C,  this  copy  from  C  would  have  served  as A's
  4789.  
  4790. acknowledgment that C had received the update.  But now,  with  u
  4791.  
  4792. on  the  queue  to  C,  if we are not careful, A will send u to C
  4793.  
  4794. after having received a copy of u from C.  When C gets this  copy
  4795.  
  4796. of  u  from  A it will not accept it (since it has already seen a
  4797.  
  4798. copy of u and sent that copy on to A),  which  will  cause  A  to
  4799.  
  4800. retransmit u to C, resulting in an unnecessary retransmission.
  4801.  
  4802.  
  4803.      In  the ARPANET, we deal with this problem by turning on the
  4804.  
  4805. retransmission timer as soon as an  update  is  received,  rather
  4806.  
  4807. than  when it is sent.  That way, an update which is still queued
  4808.  
  4809. for transmission when its "acknowledgment" is received will still
  4810.  
  4811. get transmitted unnecessarily, but the retransmission timer  gets
  4812.  
  4813. shut   off,  causing  only  one,  rather  than  two,  unnecessary
  4814.  
  4815. transmissions.  A more logical  scheme  would  be  to  check  the
  4816.  
  4817. transmission  queue  to  a  Switch whenever an update is received
  4818.  
  4819. from that Switch.  If a copy of the same  update  that  was  just
  4820.  
  4821. received  is  queued  for transmission, it should just be removed
  4822.  
  4823. from   the   queue.    This   would   prevent   any   unnecessary
  4824.  
  4825. transmissions.   In  the ARPANET, a few unnecessary transmissions
  4826.  
  4827.                              - 84 -
  4828.  
  4829. IEN 189                              Bolt Beranek and Newman Inc.
  4830.                                                     Eric C. Rosen
  4831.  
  4832.  
  4833. don't really matter, but in the internet, if we  really  want  to
  4834.  
  4835. keep  the  overhead  low, it is probably worthwhile trying to get
  4836.  
  4837. this just right.  We must remember that network access  protocols
  4838.  
  4839. may  limit  the  number  of  packets  we can get into the network
  4840.  
  4841. during some period, which makes it  all  the  more  important  to
  4842.  
  4843. avoid sending unnecessary packets.
  4844.  
  4845.  
  4846.      Suppose  we find that for some reason or other, it is taking
  4847.  
  4848. a very long time to get updates from some gateway to one  of  its
  4849.  
  4850. neighbors.   This  would  show  up  as  an  excessive  number  of
  4851.  
  4852. retransmissions of updates.  In such a case,  we  would  probably
  4853.  
  4854. have  to  consider  that particular gateway-gateway Pathway to be
  4855.  
  4856. down, irrespective of what our ordinary Pathway up/down  protocol
  4857.  
  4858. tells  us.   Remember  that  in  order  to  ensure consistent and
  4859.  
  4860. loop-free routing, we must get the updates around the internet as
  4861.  
  4862. rapidly as  possible.   If  updates  cannot  travel  sufficiently
  4863.  
  4864. rapidly  on some Pathway, then we just cannot use that Pathway at
  4865.  
  4866. all for transit within the internet.   Attempting  to  keep  that
  4867.  
  4868. Pathway up for transit can result in relatively long-term routing
  4869.  
  4870. loops,  which  could  in  turn  cause  a  degradation  in network
  4871.  
  4872. performance which swamps the degradation caused by not using that
  4873.  
  4874. Pathway at all.  Especially disastrous would be  a  situation  in
  4875.  
  4876. which  ordinary data packets could pass, but routing updates, for
  4877.  
  4878. some reason, could not.  It is hard to know what might cause such
  4879.  
  4880. a situation (perhaps a bug in the component network that  we  are
  4881.  
  4882. using  as  a  Pathway),  but it is certainly something we need to
  4883.  
  4884.                              - 85 -
  4885.  
  4886. IEN 189                              Bolt Beranek and Newman Inc.
  4887.                                                     Eric C. Rosen
  4888.  
  4889.  
  4890. protect against.  (Note, however, that even if  we  declare  some
  4891.  
  4892. gateway-gateway Pathway down, it does not follow that the network
  4893.  
  4894. underlying  that Pathway cannot be used as a terminus network, to
  4895.  
  4896. which data for Hosts can be sent and from which data  from  Hosts
  4897.  
  4898. can  be  received.   Even  if  some  network  is  not  usable for
  4899.  
  4900. providing a Pathway between two gateways on it, it may  still  be
  4901.  
  4902. useful  for providing a Pathway between the gateways and some set
  4903.  
  4904. of Hosts.)
  4905.  
  4906.  
  4907.      We have emphasized the need to transmit routing  updates  as
  4908.  
  4909. "out-of-band"  signals,  which bypass the ordinary communications
  4910.  
  4911. protocols (such as the IMP-IMP protocol in the ARPANET), so  that
  4912.  
  4913. when  congestion forms which causes those protocols to block, the
  4914.  
  4915. routing updates can still flow.  That is, we would like to have a
  4916.  
  4917. protocol which is both non-blocking and non-refusing.   This  may
  4918.  
  4919. be  quite difficult to achieve in the internet environment, where
  4920.  
  4921. sending an update from gateway to  gateway  requires  us  to  use
  4922.  
  4923. whatever  network  access  protocol  is  provided  by the Pathway
  4924.  
  4925. network.  Here our most  difficult  problem  might  be  with  the
  4926.  
  4927. ARPANET's  1822 protocol, which can cause blocking of the network
  4928.  
  4929. interface for tens of seconds.  We really can't delay  sending  a
  4930.  
  4931. routing update for 15 seconds or so while the IMP is blocking, so
  4932.  
  4933. whenever  this happens we would have to declare the pathway down.
  4934.  
  4935.  
  4936.      In the ARPANET, we have two ways  of  trying  to  deal  with
  4937.  
  4938. this.   One  way would be to send all packets into the ARPANET as
  4939.  
  4940.  
  4941.                              - 86 -
  4942.  
  4943. IEN 189                              Bolt Beranek and Newman Inc.
  4944.                                                     Eric C. Rosen
  4945.  
  4946.  
  4947. datagrams, which cannot cause blocking.  Another way would be  to
  4948.  
  4949. use  the standard virtual circuit interface, but to obey the flow
  4950.  
  4951. control restrictions of the ARPANET (i.e., to control the  number
  4952.  
  4953. of  outstanding  messages  between a pair of hosts), and to avoid
  4954.  
  4955. the use of multi-packet messages (which can cause blocking if the
  4956.  
  4957. destination IMP is short of buffers, as ARPANET IMPs  chronically
  4958.  
  4959. are).   There  are  other situations in which blocking can occur,
  4960.  
  4961. but they all involve a shortage of resources at the  source  IMP,
  4962.  
  4963. and  in  such  cases declaring the Pathway to be down is probably
  4964.  
  4965. the right thing to  do.   We  do  not  want  to  be  forced  into
  4966.  
  4967. declaring  Pathways  down  simply  because  we  have ignored some
  4968.  
  4969. protocol restriction, but it seems much more sensible to  declare
  4970.  
  4971. a Pathway down if, say, the IMP to which a gateway is attached is
  4972.  
  4973. too  congested  to provide reliable service for internet packets.
  4974.  
  4975.  
  4976.      It is important to note that whatever restrictions we  apply
  4977.  
  4978. to  our  use  of  the  network  access protocol apply not only to
  4979.  
  4980. routing updates, but also to all messages sent into  the  ARPANET
  4981.  
  4982. from  the  gateway.  It would do no good, for example, to send in
  4983.  
  4984. routing updates as datagrams, while using non-datagrams for other
  4985.  
  4986. packets, since this would allow the other packets  to  block  the
  4987.  
  4988. routing  updates.  At this point, it is not quite clear just what
  4989.  
  4990. the best scheme would be.  The use of datagrams enables us to get
  4991.  
  4992. around  the  sometimes  time-consuming  but   often   unnecessary
  4993.  
  4994. resequencing which the ARPANET performs before delivering packets
  4995.  
  4996. to  the  destination  host (it is neither necessary nor desirable
  4997.  
  4998.                              - 87 -
  4999.  
  5000. IEN 189                              Bolt Beranek and Newman Inc.
  5001.                                                     Eric C. Rosen
  5002.  
  5003.  
  5004. for the ARPANET to resequence routing updates  before  delivering
  5005.  
  5006. them  to  a  gateway),  but  it  also  reduces the reliability of
  5007.  
  5008. transmission through the ARPANET, and it is not obvious how  this
  5009.  
  5010. trades  off.   For  each  network  which  we  intend  to use as a
  5011.  
  5012. component of the internet, we will have to  carefully  study  the
  5013.  
  5014. details  of  its  network  access  protocol, and possibly do some
  5015.  
  5016. experiments to see how the  various  details  of  network  access
  5017.  
  5018. affect  the  performance,  in  terms  of  delay,  throughput, and
  5019.  
  5020. reliability of the network.  Only by  careful  attention  to  the
  5021.  
  5022. details  of  network  access  on  each particular network, and by
  5023.  
  5024. continuing measurements and instrumentation in  the  gateways  to
  5025.  
  5026. see if we are getting the expected performance from the component
  5027.  
  5028. networks, can we hope to make the routing updating protocol quick
  5029.  
  5030. and  reliable  enough  to ensure consistent and loop-free routing
  5031.  
  5032. throughput the internet.  There are a few general  principles  we
  5033.  
  5034. might  appeal  to,  such as making routing updates be the highest
  5035.  
  5036. priority traffic  that  we  send  into  the  component  networks.
  5037.  
  5038. However,  it is difficult to be sure a priori what effect even so
  5039.  
  5040. straightforward a principle might have.  It's not hard to imagine
  5041.  
  5042. a poorly designed network in which low priority  packets  receive
  5043.  
  5044. better   performance  than  high  priority  ones,  under  certain
  5045.  
  5046. circumstances.  To make the internet robust, we need to  be  able
  5047.  
  5048. to  detect  such  situations  (and to gather enough evidence, via
  5049.  
  5050. measurements, to enable us to point the finger convincingly), and
  5051.  
  5052. we cannot simply assume that a component network will perform  as
  5053.  
  5054. advertised.
  5055.                              - 88 -
  5056.  
  5057. IEN 189                              Bolt Beranek and Newman Inc.
  5058.                                                     Eric C. Rosen
  5059.  
  5060.  
  5061.      If  we  might  digress  a  little, the considerations of the
  5062.  
  5063. preceding paragraphs raise an interesting issue with  respect  to
  5064.  
  5065. the  use  of  fragmentation  in  the  gateways.   We  raised  the
  5066.  
  5067. possibility of not using multi-packet ARPANET messages, and  such
  5068.  
  5069. a  strategy  would  doubtless  require more fragmentation than is
  5070.  
  5071. presently done.  Fragmentation in  the  gateways  has  long  been
  5072.  
  5073. thought  of  as a necessary evil, necessary because some networks
  5074.  
  5075. have a smaller maximum packet size than  others.   If  a  gateway
  5076.  
  5077. receives  a  packet from network A which is too large to fit into
  5078.  
  5079. network B, then the gateway must either fragment it or drop it on
  5080.  
  5081. the floor.  However, perhaps fragmentation is sometimes useful as
  5082.  
  5083. an optimization procedure.  That is,  some  network  may  have  a
  5084.  
  5085. suitably  large  maximum  packet  size  so that fragmentation is,
  5086.  
  5087. strictly speaking, unnecessary.  Nevertheless, the network  might
  5088.  
  5089. actually  perform  better  if  given  smaller  packets,  so  that
  5090.  
  5091. fragmentation provides better performance.  We see this  in  some
  5092.  
  5093. current  Catenet problems.  It seems that the BBN-gateway between
  5094.  
  5095. ARPANET and SATNET often receives packets from SATNET  which  are
  5096.  
  5097. 2000  bits  long,  or  twice  the size of an ARPANET packet.  The
  5098.  
  5099. gateway then presents these messages to the ARPANET as two-packet
  5100.  
  5101. messages.  As it happens, two-packet messages generally give  the
  5102.  
  5103. lowest  possible  throughput on the ARPANET (a consequence of the
  5104.  
  5105. limited buffer space at the destination IMPs and  the  fact  that
  5106.  
  5107. the ARPANET assumes that all multi-packet messages will contain 8
  5108.  
  5109. packets);  the  gateway  could probably obtain better performance
  5110.  
  5111.  
  5112.                              - 89 -
  5113.  
  5114. IEN 189                              Bolt Beranek and Newman Inc.
  5115.                                                     Eric C. Rosen
  5116.  
  5117.  
  5118. from the ARPANET by fragmenting the two-packet message  into  two
  5119.  
  5120. single-packet  messages.   Of course, the situation is a bit more
  5121.  
  5122. complicated in general than this may make it seem.   If  messages
  5123.  
  5124. are being sent from a source host through SATNET and then through
  5125.  
  5126. ARPANET  to  a  destination  host, best performance might well be
  5127.  
  5128. achieved by sending the messages  as  2000-bit  messages  through
  5129.  
  5130. SATNET,  then  fragmenting  them  and  sending  them  as 1000-bit
  5131.  
  5132. messages through ARPANET.  However, what if the messages must  go
  5133.  
  5134. beyond  ARPANET,  through another network, which handles 2000-bit
  5135.  
  5136. messages more efficiently than 1000-bit messages?  This  sort  of
  5137.  
  5138. strategy,  if useful at all, is best done in combination with the
  5139.  
  5140. hop-by-hop fragmentation/reassembly scheme suggested in IEN  187.
  5141.  
  5142.  
  5143.      The  part  of the routing updating protocol which deals with
  5144.  
  5145. recovery  from  partitions  (including  the  degenerate  case  of
  5146.  
  5147. initialization when a Switch comes up) is somewhat more tricky to
  5148.  
  5149. apply  to  the  internet  environment.  In the ARPANET, we have a
  5150.  
  5151. number of one-minute timers.  Each IMP must generate an update at
  5152.  
  5153. least once per minute; a line that  is  ready  to  come  up  must
  5154.  
  5155. participate  in  the  updating protocol for a minute before being
  5156.  
  5157. declared up; and an update that has been held for a minute in  an
  5158.  
  5159. IMP,  with  no  later update from that update's source IMP having
  5160.  
  5161. been seen, is regarded as "old", in the sense that  its  sequence
  5162.  
  5163. number  is  no longer considered when the IMP is deciding whether
  5164.  
  5165. the next update it sees (from the same source) is acceptable.  In
  5166.  
  5167. attempting to adapt these procedures to  the  internet,  we  must
  5168.  
  5169.                              - 90 -
  5170.  
  5171. IEN 189                              Bolt Beranek and Newman Inc.
  5172.                                                     Eric C. Rosen
  5173.  
  5174.  
  5175. take  notice  of the way in which these timers interact with each
  5176.  
  5177. other and with other features of  the  internet.   Consider,  for
  5178.  
  5179. example,  the  length  of  the  maximum  update  lifetime,  which
  5180.  
  5181. determines how long an update's sequence number remains valid for
  5182.  
  5183. the purposes of judging the acceptability  of  the  next  update.
  5184.  
  5185. There are two restrictions on the length of this timer:
  5186.  
  5187.  
  5188.      1) A Switch A should not time out  an  update  whose  source
  5189.  
  5190.         Switch  is  B  unless  there  really is a partition which
  5191.  
  5192.         destroys  the  communication  path  between   A   and   B
  5193.  
  5194.         (remember,   this  includes  the  degenerate  case  of  a
  5195.  
  5196.         partition where B simply goes down).  This means that the
  5197.  
  5198.         time-out period must be  greater  than  the  sum  of  the
  5199.  
  5200.         maximum  interval between updates PLUS the maximum amount
  5201.  
  5202.         of time that an update from B could take to get to A.
  5203.  
  5204.  
  5205.      2) The sequence numbering scheme used for the  updates  must
  5206.  
  5207.         be such that the sequence numbers cannot wrap around in a
  5208.  
  5209.         period  of  time  which  is  less than the maximum update
  5210.  
  5211.         life-time.
  5212.  
  5213.  
  5214.      In the ARPANET, the sequence numbers  cannot  wrap  in  less
  5215.  
  5216. than  a  few  minutes, each IMP generates an update at least once
  5217.  
  5218. per minute, and the time to get that update to all other IMPs  is
  5219.  
  5220. negligible  when  compared  to  a  minute,  so  a  maximum update
  5221.  
  5222. lifetime of one minute is fine.  In  the  internet,  however,  we
  5223.  
  5224. could  not  expect  to  measure  transit times in the hundreds of
  5225.  
  5226.                              - 91 -
  5227.  
  5228. IEN 189                              Bolt Beranek and Newman Inc.
  5229.                                                     Eric C. Rosen
  5230.  
  5231.  
  5232. milliseconds; tens of seconds would be more like it.  So even  if
  5233.  
  5234. we  forced  each  gateway  to  generate  at  least one update per
  5235.  
  5236. minute, we would still need a maximum update lifetime of  several
  5237.  
  5238. minutes.   And the longer our maximum update lifetime, the larger
  5239.  
  5240. our sequence number space must be (to prevent wrap-around), which
  5241.  
  5242. means additional overhead (memory and bandwidth) to represent the
  5243.  
  5244. sequence numbers.
  5245.  
  5246.  
  5247.      A similar constraint applies to the "waiting  period".   The
  5248.  
  5249. purpose   of  the  waiting  period  is  to  ensure  that  when  a
  5250.  
  5251. gateway-gateway Pathway is ready to come up, it is not  permitted
  5252.  
  5253. to  carry  data until an update from each other gateway traverses
  5254.  
  5255. it.  Clearly, for this to have the  proper  effect,  the  waiting
  5256.  
  5257. period  must  be  longer than the sum of the maximum transit time
  5258.  
  5259. plus the maximum interval between the generation of updates  from
  5260.  
  5261. a  single  gateway.   We  would probably also have to set this to
  5262.  
  5263. several  minutes.   This  does   have   a   serious   operational
  5264.  
  5265. consequence,  namely  that  no  outage will persist for less than
  5266.  
  5267. several minutes.  This can be an inconvenience,  lengthening  the
  5268.  
  5269. time  it  takes  to  put  out  a  new software release to all the
  5270.  
  5271. gateways,  for  example,  and   possibly   affecting   the   MTTR
  5272.  
  5273. statistics, but it is something we just have to live with.  Note,
  5274.  
  5275. by  the  way,  that  as long as the waiting period is at least as
  5276.  
  5277. long as the maximum update  lifetime,  a  gateway  that  restarts
  5278.  
  5279. after  a  failure (or a reload) can start generating updates with
  5280.  
  5281. sequence number 0, irrespective of what sequence numbers  it  was
  5282.  
  5283.                              - 92 -
  5284.  
  5285. IEN 189                              Bolt Beranek and Newman Inc.
  5286.                                                     Eric C. Rosen
  5287.  
  5288.  
  5289. using before, since all its prior updates will have timed out (if
  5290.  
  5291. the timers are set right).
  5292.  
  5293.  
  5294. 4.6  Limitations of Internetting
  5295.  
  5296.  
  5297.      This  discussion  of routing in the internet points out some
  5298.  
  5299. of  the  inherent  limits  of  internetting.   Good   performance
  5300.  
  5301. requires the use of a routing updating procedure which broadcasts
  5302.  
  5303. the  updates  in a very reliable and quick manner.  Anything that
  5304.  
  5305. delays the routing updates, or makes their transmission less than
  5306.  
  5307. reliable, will lengthen the amount of time during which different
  5308.  
  5309. Switches have a different "picture"  of  the  Network  Structure,
  5310.  
  5311. which  in  turn  will  degrade  performance.  We believe that the
  5312.  
  5313. updating protocol we  developed  for  the  ARPANET  solves  these
  5314.  
  5315. problems in the context of the ARPANET.  It seems clear, however,
  5316.  
  5317. that  broadcasting  routing updates in the internet is just going
  5318.  
  5319. to be slower and  less  reliable  than  it  is  in  the  ARPANET.
  5320.  
  5321. Although  the  same  principles  seem to apply in both cases, the
  5322.  
  5323. characteristics of the internet  Pathways  are  not  sufficiently
  5324.  
  5325. stable  to  ensure the speed and reliability that we really would
  5326.  
  5327. like to have.  It is going to be very hard to ensure that we  can
  5328.  
  5329. get our routing updates through the various component networks of
  5330.  
  5331. the  internet in a timely and reliable manner, and it may be hard
  5332.  
  5333. to get the component networks  to  handle  the  internet  routing
  5334.  
  5335. updates  with  enough priority to prevent them from being blocked
  5336.  
  5337. due to congestion.  This is going to place a  limit  on  internet
  5338.  
  5339.  
  5340.                              - 93 -
  5341.  
  5342. IEN 189                              Bolt Beranek and Newman Inc.
  5343.                                                     Eric C. Rosen
  5344.  
  5345.  
  5346. performance  which we cannot avoid no matter what architecture we
  5347.  
  5348. choose.
  5349.  
  5350.  
  5351.      The only way to eliminate this sort of problem would  be  to
  5352.  
  5353. have  the component networks themselves give special treatment to
  5354.  
  5355. internet control packets, such as  routing  updates.   Currently,
  5356.  
  5357. the  component  networks  of  the internet treat internet control
  5358.  
  5359. packets as mere data.  We have suggested that in some  cases,  it
  5360.  
  5361. is  impossible  to meet certain of our goals without special help
  5362.  
  5363. from the underlying networks.  For example, in our discussion  of
  5364.  
  5365. the  "gateway  discovery protocol", we argued that preserving the
  5366.  
  5367. maximum  flexibility  for  making  topological  changes  in   the
  5368.  
  5369. internet requires cooperation from the underlying networks.  This
  5370.  
  5371. point  can  be  generalized, though.  The more cooperation we can
  5372.  
  5373. get from the underlying networks, the  better  we  can  make  our
  5374.  
  5375. internet  routing  algorithm  perform, and the better we can make
  5376.  
  5377. the internet perform.  We would recommend therefore that  serious
  5378.  
  5379. consideration be given to modifying the component networks of the
  5380.  
  5381. Catenet to maximize their cooperation with the internet.
  5382.  
  5383.  
  5384.      Even  if the component networks of the internet cooperate to
  5385.  
  5386. the fullest,  there  is  another  problem  which  may  limit  the
  5387.  
  5388. responsiveness  of  the internet routing algorithm.  If there are
  5389.  
  5390. very long transit times across the internet, much longer than  we
  5391.  
  5392. ever  see  in  individual  networks  like  the  ARPANET, then the
  5393.  
  5394. responsiveness of routing is necessarily held down.  This  factor
  5395.  
  5396.  
  5397.                              - 94 -
  5398.  
  5399. IEN 189                              Bolt Beranek and Newman Inc.
  5400.                                                     Eric C. Rosen
  5401.  
  5402.  
  5403. will  place  a natural restriction on the growth of the internet.
  5404.  
  5405. At a certain point, it will become just too big to be treated  as
  5406.  
  5407. a  single  Network  Structure,  so that further growth would make
  5408.  
  5409. routing too non-responsive to provide  good  service.   That  is,
  5410.  
  5411. eventually  we reach a point of diminishing returns, where adding
  5412.  
  5413. more Switches, or even adding more levels of hierarchy, begins to
  5414.  
  5415. significantly degrade service throughout the internet  by  making
  5416.  
  5417. the  routing  algorithm  too  non-responsive.  It is important to
  5418.  
  5419. understand that the notion of "big" here has nothing to  do  with
  5420.  
  5421. the  number  of Switches, but rather with the transit time across
  5422.  
  5423. the internet.
  5424.  
  5425.  
  5426.      If there are two Hosts which cannot, for reasons like  this,
  5427.  
  5428. be placed on the same internet, it may still be possible for them
  5429.  
  5430. to communicate, though at a somewhat reduced level of efficiency.
  5431.  
  5432. Each  of  the  Hosts  would  have to be on some internet, but not
  5433.  
  5434. necessarily on the same one.  Suppose, for  example,  that  there
  5435.  
  5436. are  two  different  internets,  internet A and internet B, which
  5437.  
  5438. cannot be combined into one larger internet because the resultant
  5439.  
  5440. internet would be too large to  permit  a  reasonably  responsive
  5441.  
  5442. routing  algorithm.   However,  it  is  still  possible  for each
  5443.  
  5444. internet to model the other one as an  Access  Pathway.   Suppose
  5445.  
  5446. that  Host  H1 on internet A needs to communicate with Host H2 on
  5447.  
  5448. internet B.  Then if a Switch SA of internet A can  be  connected
  5449.  
  5450. to  a  Switch SB of internet B, the internet A can represent Host
  5451.  
  5452. H2 as being homed to its Switch  SA,  via  a  Pathway  (of  whose
  5453.  
  5454.                              - 95 -
  5455.  
  5456. IEN 189                              Bolt Beranek and Newman Inc.
  5457.                                                     Eric C. Rosen
  5458.  
  5459.  
  5460. internal  structure  it is unaware) which is actually internet B.
  5461.  
  5462. A corresponding mapping can  be  made  in  the  other  direction,
  5463.  
  5464. permitting  full-duplex communication.  However, neither internet
  5465.  
  5466. could use the other as an internal (i.e., Switch-Switch) Pathway,
  5467.  
  5468. or  the   resulting   configuration   would   be   insufficiently
  5469.  
  5470. responsive.   (This  may seem akin to the regionalization against
  5471.  
  5472. which  we  argued  in  section  4.3.4.   However,  since  neither
  5473.  
  5474. internet  uses  the  other  as  an internal Pathway, there are no
  5475.  
  5476. problems of looping.)  Naturally,  just  as  Hosts  on  a  common
  5477.  
  5478. network  can expect to get more efficient communications than can
  5479.  
  5480. Hosts which must communicate over an internet, Hosts on a  common
  5481.  
  5482. internet  will  get more efficient communications than will hosts
  5483.  
  5484. on different internets.
  5485.  
  5486.  
  5487.      There are other reasons besides non-responsiveness which may
  5488.  
  5489. make it imperative to have separate internets  which  cannot  use
  5490.  
  5491. each  other  as  internal  Pathways.   For example, two internets
  5492.  
  5493. might cover the same "territory,"  geographically  speaking,  but
  5494.  
  5495. may  be  under the control of two different organizations, or may
  5496.  
  5497. use essentially different  algorithms  or  protocols.   In  fact,
  5498.  
  5499. several  different  internets  might  even  cover the same set of
  5500.  
  5501. Hosts, and consist of the same set of component  packet-switching
  5502.  
  5503. networks.   (It  is  important  to remember that it is the set of
  5504.  
  5505. gateways which constitute the internet, not the set of  component
  5506.  
  5507. networks.  Imagine if every ARPA-controlled network had a Brand X
  5508.  
  5509. gateway  and a Brand Y gateway.  Then there would be two separate
  5510.  
  5511.                              - 96 -
  5512.  
  5513. IEN 189                              Bolt Beranek and Newman Inc.
  5514.                                                     Eric C. Rosen
  5515.  
  5516.  
  5517. internets, Brand X and Brand Y, which are logically  rather  than
  5518.  
  5519. physically  separate.)   Our  procedure  of  having each internet
  5520.  
  5521. regard the other as an Access Pathway to a set of Hosts, but  not
  5522.  
  5523. as  an  Internal Pathway, allows communication among Hosts on the
  5524.  
  5525. different internets, without introducing problems of looping, and
  5526.  
  5527. while preserving the maintainability of the individual internets.
  5528.  
  5529. Of course if the two internets have different  access  protocols,
  5530.  
  5531. then  the Switches of one or the other internet (or both) must be
  5532.  
  5533. prepared to translate from one protocol to the other, but that is
  5534.  
  5535. a simpler problem than the ones we have been dealing with.
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.  
  5564.  
  5565.  
  5566.  
  5567.  
  5568.                              - 97 -
  5569.  
  5570. IEN 189                              Bolt Beranek and Newman Inc.
  5571.                                                     Eric C. Rosen
  5572.  
  5573.  
  5574.                            REFERENCES
  5575.  
  5576.  
  5577. 1.  J.M. McQuillan, I.  Richer,  E.C.  Rosen,  "The  New  Routing
  5578.     Algorithm    for   the   ARPANET,"   IEEE   TRANSACTIONS   ON
  5579.     COMMUNICATIONS, May 1980.
  5580.  
  5581. 2.  E.C. Rosen, "The Updating Protocol of ARPANET's  New  Routing
  5582.     Algorithm," COMPUTER NETWORKS, February 1980.
  5583.  
  5584. 3.  J.M  McQuillan,  I.  Richer,  E.C.  Rosen,  ARPANET   ROUTING
  5585.     ALGORITHM  IMPROVEMENTS:  FIRST  SEMIANNUAL TECHNICAL REPORT,
  5586.     BBN Report No. 3803, April 1978.
  5587.  
  5588. 4.  J.M.  McQuillan,  I.  Richer,  E.C.  Rosen,  D.P.  Bertsekas,
  5589.     ARPANET  ROUTING  ALGORITHM  IMPROVEMENTS:  SECOND SEMIANNUAL
  5590.     TECHNICAL REPORT, BBN Report No. 3940, October 1978.
  5591.  
  5592. 5.  E.C. Rosen, J.G. Herman, I. Richer, J.M.  McQuillan,  ARPANET
  5593.     ROUTING  ALGORITHM  IMPROVEMENTS:  THIRD SEMIANNUAL TECHNICAL
  5594.     REPORT, BBN Report No. 4088, March 1979.
  5595.  
  5596. 6.  E.C. Rosen, J. Mayersohn,  P.J.  Sevcik,  G.J.  Williams,  R.
  5597.     Attar,  ARPANET ROUTING ALGORITHM IMPROVEMENTS: VOLUME 1, BBN
  5598.     Report No. 4473, August 1980.
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619.  
  5620.  
  5621.  
  5622.  
  5623.  
  5624.  
  5625.                              - 98 -
  5626.  
  5627.